(5)STM32使用HAL库实现串口通讯——实战操作

时间:2023-02-09 23:55:26

功能需求:

(1)对接收的字符串原样返回(每10个字符一次)。

(2)发送一个字符串完成后改变LED的状态。

1.创建工程

使用的是F407Discovery,4个LED对应PD12-PD14。

(1)使用外部高速时钟

(5)STM32使用HAL库实现串口通讯——实战操作

(2)推挽输出4个LED输出端口

(5)STM32使用HAL库实现串口通讯——实战操作

(3)使用usart2

(5)STM32使用HAL库实现串口通讯——实战操作

(4)外部8M,使用HSE,频率设置为最高(168MHz,这个可随便)

(5)STM32使用HAL库实现串口通讯——实战操作

(5)如下,设置用中断

(5)STM32使用HAL库实现串口通讯——实战操作

(6)设置使用中断(在usart2中断下边的是外部中断,我测试的时候用的可不用管)

(5)STM32使用HAL库实现串口通讯——实战操作

(7)点击这个小齿轮生成工程

(5)STM32使用HAL库实现串口通讯——实战操作

2.程序设计

需求中需要接收到10个字符之后原样返回,发送完成后还要改变LED状态,所以要用中断,发送接收都要。

(1)定义一个字符变量,两个缓存数组(uint8_t其实就是unsigned char类型)

(5)STM32使用HAL库实现串口通讯——实战操作

(2)在while(1)之前先使能接收中断并绑定接收缓存数组指定大小。在while(1)中:先发送一个字符,再发送字符数组中的字符,最后延时一下要不然一会发送的太快不利于观察。

(5)STM32使用HAL库实现串口通讯——实战操作

(3)写回调函数(两个)

(5)STM32使用HAL库实现串口通讯——实战操作

(4)下载验证即可

(5)STM32使用HAL库实现串口通讯——实战操作