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中断请求标志。

相关推荐
uran5 小时前
从电磁兼容到代码优化:STM32 GPIO速度与EMI的隐秘关联
stm32·gpio·emc·嵌入式优化
想放学的刺客5 小时前
整理了120道单片机嵌入式面试题与答案,覆盖了硬件电路和C语言等核心领域。
c语言·c++·stm32·单片机·嵌入式硬件·mcu·51单片机
Decksweeper5 小时前
【大一做毕设?十二天四人从零开始手搓智能小车!(基于rdk x5、stm32与yolo v5,小车可实现巡线,避障,识别与夹取特定物块)】
stm32·嵌入式硬件·yolo·课程设计
回不去的bug5 小时前
【STM32】玩转IIC之驱动MPU6050及姿态解算
stm32·单片机·嵌入式硬件·mpu6050
weixin_1122335 小时前
基于单片机的塑料厂房气体检测系统设计
单片机·嵌入式硬件
沐欣工作室_lvyiyi7 小时前
基于单片机的电力系统中多路报警显示装置(论文+源码)
单片机·毕业设计·报警装置
阿ฅ( ̳• ε • ̳)ฅ9 小时前
esp32C3核心版下载AT固件,等待上电问题
单片机·嵌入式硬件
Y1rong13 小时前
STM32之CAN
stm32
czhaii14 小时前
TCRT5000漫反射STC15F204EA AD转换
嵌入式硬件·硬件工程
恶魔泡泡糖15 小时前
51单片机-DS18B20温度传感器
单片机·嵌入式硬件·51单片机