STM32F411RE串口通信

时间:2024-10-13 10:09:00

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

工具/原料

STM32CubeMX

Keil

串口调试工具

用MX生成HAL基础代码

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

STM32F411RE串口通信

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

STM32F411RE串口通信
STM32F411RE串口通信

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

STM32F411RE串口通信

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

STM32F411RE串口通信
STM32F411RE串口通信

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

STM32F411RE串口通信

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

STM32F411RE串口通信

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

STM32F411RE串口通信

8、代码生成的配置这里就不多说了,请看图,有不明白的可以百度下。

STM32F411RE串口通信
STM32F411RE串口通信
STM32F411RE串口通信

补全HAL功能代码

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

STM32F411RE串口通信

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

STM32F411RE串口通信

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

STM32F411RE串口通信

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

STM32F411RE串口通信
STM32F411RE串口通信

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

STM32F411RE串口通信
© 手抄报圈