今天完善了USART串口接收数据函数以及程序,在每个USART外设上都添加了串口空闲中断函数。其步骤如下:: Y9 F7 R7 W! h/ U8 {% M 添加总线空闲中断功能的优点: a) 可以准确地判断出串口数据是否接收完毕,不需要额外添加定时器作数据接收完毕超时检测,不仅可以减少了TIM定时器外设 的使用,提高系统性能,而且可以增强程序的可读性(因为使用TIM定时器做超时检测时,需要在TIM定时器中断函数中添加一个 USART_RX_Over的标识符,影响了程序的可读性); a) 在使用串口空闲中断时需要添加读DR位(数据寄存器)空闲中断变量,因为每次触发串口空闲中断时,需要读取对应USART的DR位(数据寄存器)才能清除IDLE(串口空闲空闲标志位)标志位,保证下次执行时不出错,如图下:. y3 J' ~% j3 m; s% N/ |/ N* a f8 N c) 当接收到多个数据时,需要添加记录接收数据个数USART_RX_Count变量,在进入串口空闲中断(证明串口接收数据完毕),清零该变量,避免该变量在工程文件外部清零,有效地预防忘记在文件外部将USART_RX_Count清零导致bug出现;9 v* l3 [% ?; Q# z- o, s. y 5 q4 t) _6 a9 N7 |1 |7 L; \4 y 7 N1 ~' ?: _2 ]* s |
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试
NUCLEO-U545RE-Q板卡评测 (第二篇外传)UART的单线半双工的上拉电阻问题
基于STM32串口如何发送字符串经验分享
基于STM32模拟UART串口通信
基于STM32的串口通信经验分享
基于STM32串口通信经验分享
STM32芯片ISP串口程序一键下载—FlyMcu
基于STM32F1串口配置经验分享
基于stm32串口通信和LED灯点亮经验分享