stm32HAL库串口错误回调函数的使用

使用stm32HAL库串口IDLE中断时,有时串口速度快会导致串口出错后续就收不到数据了

可以通过实现串口中断回调函数来解决

void usart_DMA_rx_EN(UART_HandleTypeDef *huart,uint8_t *pData,uint16_t Size)

{

HAL_UARTEx_ReceiveToIdle_IT(huart,pData,Size);

//HAL_UARTEx_ReceiveToIdle_DMA(huart,pData,Size);

}

/* 中断错误处理函数,在此处理overrun错误 */

void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)

{

if(huart == &huart2)

{

//执行HAL_UART_ErrorCallback时,还处于lock,需先unlock,

//因为HAL_UART_Receive_IT执行时需判断如果是lock则直接返回BUSY

__HAL_UNLOCK(huart);

usart_DMA_rx_EN(huart,rx_data,200);

}else if(huart == &huart1)

{

__HAL_UNLOCK(huart);

usart_DMA_rx_EN(huart,weight_data,100);

}

}

相关推荐
单片机仿真设计7 小时前
【proteus仿真】基于 STM32 单片机衣柜温湿度监测系统(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus
嵌入式学习菌7 小时前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
千秋岁rr7 小时前
11.USART
单片机·嵌入式硬件
ouynagda7 小时前
51 单片机外部中断 + 定时器中断实验(P3.2 按键清零,无消抖)
单片机·嵌入式硬件
辰域电子8 小时前
STM32项目开源:环境质量监测系统(代码+原理图+仿真)
stm32·单片机·嵌入式硬件·开源·毕业设计·proteus
单片机仿真设计8 小时前
【proteus仿真】基于 STM32+DHT11 温湿度监测系统 Proteus 仿真设计
stm32·单片机·嵌入式硬件·proteus
国科安芯8 小时前
星链供电架构中的高集成度电源管理方案研究——基于ASP4644四通道降压稳压器在低轨卫星星座中的应用分析
大数据·单片机·嵌入式硬件·架构·低轨卫星·星间链路
wuyk5559 小时前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
xx~t10 小时前
嵌入式——51单片机1
linux·c语言·单片机·嵌入式硬件·51单片机
保安大队王队长11 小时前
51单片机知识
单片机·嵌入式硬件·51单片机