多语言展示
当前在线:1710今日阅读:91今日分享:37

STM32F411RE串口通信

一个基于HAL库的串口通信操作,使用的是STM32F411RE,基础配置代码是通过STM32CubeMX生成的,个人操作记录,希望对需要的朋友有用。
工具/原料
1

STM32CubeMX

2

Keil

3

串口调试工具

用MX生成HAL基础代码
1

新建一个STM32CubeMX工程,选择STM32F411RE芯片,切换到Pinout页。

2

展开“USART2”,选择“Mode”右侧的组合框,选择“Asynchronous”即异步模式。配置完成后右边的引脚会有相应提示,USART2对应的端口是TX-PA2,RX-PA3。

3

切换到“Configuration”页,可以看到刚使能的USART2,点击它。

4

在弹出的“USART2 Configuration”对话框中选择“Parameter Settings”,配置好波特率、停止位等信息。比如我这里选择的波特率是9600,8位数据,无校验,1个停止位。

5

切换到“GPIO Settings”配置端口模式,一般保持默认即可,主要是需要用串口的复用模式。

6

NVIC Settings是配置中断向量,因为只是测试一下串口,这里暂不做选择。

7

代码配置完成,点击菜单栏的“Project”->'Generate Code'生成代码。

补全HAL功能代码
1

打开刚刚用MX生成的工程,这里选择的是Keil工程。

2

在main函数最前面的用户区域定义一个字符串“Hello world !\r\n”,记得加回车换行,这个用于测试串口。

3

在main函数的主循环中添加一个串口发送函数:HAL_UART_Transmit(&huart2, myStr, strlen(myStr), 1000);函数的作用是以阻塞方式将保存在myStr中的数据发送到huart2指向的串口,发送长度是strlen(myStr)也就是这个字符串的长度,1000是超时允许的最大值这个单位视SysTick而定,一般是1ms。

4

另外附上其它串口初始的主要代码,我的的HAL库版本是STM32Cube_FW_F4_V1.21.0

5

串口调试如下,可以看到通信是成功的,注意波特率等基本参数要匹配。

注意事项
1

1、如果是NECLEO-F411RE开发板,请使用USART1,因为USART2被ST-LINK占用了,开发板引出的两个TX和RX用不了的,得花很多心思去更改接线方式。

2

2、注意发送和接收波特率的配置。

推荐信息