STM32CubeMX学习教程之九:串口与DMA

完整源码下载:

https://github.com/simonliu009/STM32CubeMX-USART-DMA

本篇主要讲述如何通过DMA向串口输出数据。

 

软件:

STM32CubeMX V4.25.0  

System Workbench V2.4

 

 

固件库版本:

STM32Cube FW_F1 V1.6.1

硬件:

OneNet 麒麟座V2.3

在STM32CubeMX中新建项目,选择正确的MCU型号

 

首先设置RCC和SYS,如下图

 

然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M),如下图

配置USART1为Asychronous模式

 

可以看到PA9和PA10被配置为了USART1_TX, USART1_RX。

UART1配置用默认的115200,8, None和1就好。

配置DMA,点击Add,添加USARTT1_TX, Channel和Direction会自动选择,Data Width用默认的Byte。

然后启用串口中断

Project - setting ,ToolChain/IDE选择 SW4STM32

勾选这里

保存以后,点击任务栏的生成代码图标

生成完毕以后在弹出的对话框点击"Open Project", System Workbench自动打开Eclipse并导入和打开了项目。

编辑main.c, 添加如下代码

 

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
uint8_t serialMsg[] = "\r\n**** Serial Output Message by DMA ***\r\n   UART DMA Test \r\n";
/* USER CODE END PV */
	  while (1)
	  {
	  /* USER CODE END WHILE */

	  /* USER CODE BEGIN 3 */
	        HAL_UART_Transmit_DMA(&huart1, (uint8_t *)serialMsg, sizeof(serialMsg));
	        HAL_Delay(1000);
	  }

然后右键点击项目,选择Properties, Run-Debug Settings, 点击右侧的New,在弹出对话框中选择Ac6 STM32 Debugging。

然后任务栏上点击Run图,当然会报错的,原因请查看另一篇我的博客(https://blog.csdn.net/toopoo/article/details/79680323),所以需要右键点击  项目名Run.cfg ,给它改个名字,

 

然后右键点击项目树里面的项目名称,选择“Propeties”,然后在Run/Debug Settings-选择项目名-Edit-Main-C/C++Application那里点击“Search Project”,然后选择出现的默认的elf文件:

然后在Debugger-User Defined-Browse 那里选择你自己改名的配置文件:

然后右键点击那个新的cfg文件,选择"Open With - Text Editor", 进行如下更改:

source [find interface/stlink.cfg] 更改为 source [find interface/stlink-v2.cfg]

reset_config srst_only srst_nogate connect_assert_srst 这一行改为 reset_config none 

然后再Run一下,就可以了。

通过串口调试软件(波特率设为115200)就可以看到它不断输出如下信息:

**** Serial Output Message by DMA ***
   UART DMA Test 
.
**** Serial Output Message by DMA ***
   UART DMA Test 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值