STM32空闲中断处理串口接受数据

1、检测到空闲线路中断也叫做空闲中断,意思是串口接收完1字节数据后,数据先保持高电平(空闲)的时间超过1字节数据所用的时间,则被判定为空闲中断。

2、HAL库中操作空闲中断的宏是

(1)_HAL_UART_GET_FLAG(HANDLE,FLAG)宏

其中,_HANDLE_是串口的句柄如huart3,_FLAG_是所要检测中中断标志位,如检测空闲中断则取值为UART_FLAG_IDLE。

(2)_HAL_UART_CLEAR_IDLEFLAG(HANDLE)宏

其中,_HANDLE_是串口的句柄如huart3。

3、空闲中断编程具体步骤

(1)在main函数的初始化部分的最后用HAL_UART_Receive_IT()函数使能串口接收中断,并指定接收缓冲区和接收数据的长度。

(2)在串口接收中断回调函数HAL_UART_RxCpltCallback()中读取串口所接收的数据,并保存至用户缓冲区中。

(3)在main函数的while死循环中用_HAL_UART_GET_FLAG()宏读取IDLE中断请求标志,并判断其状态,若为复位状态,则结束数据接收处理工作,若为置位状态,则对接收到的数据进行处理,处理结束后用_HAL_UART_CLEAR_IDLEFLAG(HANDLE)宏清除IDLE中断请求标志。

相关推荐
晶振厂家-晶发电子3 天前
晶振在5G时代的角色:高精度时钟的核心支撑
单片机·嵌入式硬件·5g·晶振·电子元器件·晶振知识
F137298015573 天前
WD5030A 芯片,12V降5V,输出电流12A,电路设计
stm32·单片机·嵌入式硬件·汽车·51单片机
小莞尔3 天前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
三佛科技-187366133973 天前
分享机械键盘MCU解决方案
单片机·嵌入式硬件·计算机外设
李永奉3 天前
51单片机-使用IIC通信协议实现EEPROM模块教程
单片机·嵌入式硬件·51单片机
工大一只猿3 天前
51单片机学习
嵌入式硬件·学习·51单片机
小莞尔3 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
风_峰3 天前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
bing_feilong3 天前
STM32精准控制水流
单片机·嵌入式硬件
Hello_Embed3 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件