STM32串口空闲中断的使用
2019-04-30 11:08
78 查看
今天完善了USART串口接收数据函数以及程序,在每个USART外设上都添加了串口空闲中断函数。其步骤如下:
添加总线空闲中断功能的优点:
a) 可以准确地判断出串口数据是否接收完毕,不需要额外添加定时器作数据接收完毕超时检测,不仅可以减少了TIM定时器外设 的使用,提高系统性能,而且可以增强程序的可读性(因为使用TIM定时器做超时检测时,需要在TIM定时器中断函数中添加一个 USART_RX_Over的标识符,影响了程序的可读性);
添加总线空闲中断功能的需要注意的地方:
a) 在使用串口空闲中断时需要添加读DR位(数据寄存器)空闲中断变量,因为每次触发串口空闲中断时,需要读取对应USART的DR位(数据寄存器)才能清除IDLE(串口空闲空闲标志位)标志位,保证下次执行时不出错,如图下:
b) 当触发串口空闲中断时(证明串口接收数据完毕),可以添加USART_RX_Over全局变量,利于在工程文件外部判断串口数据是否接收完毕;
c) 当接收到多个数据时,需要添加记录接收数据个数USART_RX_Count变量,在进入串口空闲中断(证明串口接收数据完毕),清零该变量,避免该变量在工程文件外部清零,有效地预防忘记在文件外部将USART_RX_Count清零导致bug出现;
相关文章推荐
- STM32使用DMA加串口空闲中断接收数据
- STM32串口使用心得(一)——DMA+空闲中断接收
- STM32 HAL 库, 配置串口DMA接收及空闲中断
- STM32串口中断使用
- STM32 串口 空闲中断接收不定长数据
- Stm32——串口空闲中断+DMA接收不定长数据
- STM32的串口空闲中断
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- STM32串口中断使用
- STM32 使用HAL库做串口的DMA发送和中断接收
- stm32-串口使用IDLE中断接受不定长数据方法
- STM32串口空闲中断问题
- STM32 利用DMA和串口空闲中断实现不定长收发数据包
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- stm32的串口空闲中断接收数据
- STM32 串口中断里面使用printf 出现错误
- STM32使用SRAM方式仿真不进串口中断的解决方法
- STM32使用串口中断发送和接受数据
- STM32串口使用心得(二)——串口溢出中断(ORE)
- cube生成STM32F103ZET串口中断的使用方法;DMA加串口空闲中断的使用方法