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

相关推荐
weixin_508821653 小时前
STM32H7系列USART驱动区别解析 stm32h7xx_hal_usart.c与stm32h7xx_ll_usart.c的区别?
c语言·stm32·嵌入式硬件
给生活加糖!4 小时前
STM32与ESP32的区别
stm32·单片机·嵌入式硬件
上海易硅智能科技局有限公司4 小时前
AG32VH 系列应用指南
单片机·嵌入式硬件·fpga开发·agm芯片
长流小哥6 小时前
STM32:Modbus通信协议核心解析:关键通信技术
服务器·网络·stm32·单片机·嵌入式硬件·信息与通信·modbus
H2122021656 小时前
14.测速小车(测速模块)
单片机·嵌入式硬件·51单片机
SlientICE7 小时前
当物联网“芯”闯入纳米世界:ESP32-S3驱动的原子力显微镜能走多远?
单片机·物联网
what&&why7 小时前
电路中常见器件及作用(电阻 电容 电感)
单片机·嵌入式硬件
2401_888859718 小时前
STM32 RTC实时时钟\BKP备份寄存器\时间戳
stm32·嵌入式硬件·实时音视频
比特森林探险记8 小时前
FreeRTOS 在物联网传感器节点的应用:低功耗实时数据采集与传输方案
c语言·嵌入式硬件·物联网
Python小老六9 小时前
单片机上按键功能通常都是用什么方法写?
单片机·嵌入式硬件