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

相关推荐
东京老树根4 小时前
Arduino - 入门02 - Arduino编程基础 Arduino程序结构,实物与模拟器对照,Arduino常用函数
单片机·机器人
salipopl6 小时前
基于STM32平台的多旋翼无人机系统设计与实现
stm32·嵌入式硬件·无人机
iCxhust14 小时前
8086/8088单板机VSCode集成自动下载功能(完善串口接收显示版)
ide·vscode·单片机·编辑器·微机原理·8088单板机·8086单板机
振南的单片机世界15 小时前
从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED
stm32·单片机·嵌入式硬件
listhi52015 小时前
STC8 16通道模拟采集 + 4路串口 + 8路PWM 程序
stm32·单片机·嵌入式硬件
星夜夏空9916 小时前
STM32单片机学习(4)——嵌入式概述
stm32·单片机·学习
Deitymoon16 小时前
STM32——OLED显示字符串
单片机·嵌入式硬件
LCG元17 小时前
STM32实战:基于STM32F407的FFT频谱分析(音频信号处理)
stm32·音视频·信号处理
Graceful_scenery17 小时前
龙芯2k0300 - 走马观碑组按键驱动移植
单片机·嵌入式硬件
d111111111d17 小时前
MQTT+STM32+ESP8266网络程序分层+韦老师
笔记·stm32·单片机·嵌入式硬件·学习·php