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);

}

}

相关推荐
LCG元1 小时前
STM32实战:基于STM32F103的智能鱼缸自动投喂与换水系统
stm32·单片机·嵌入式硬件
进击的小头1 小时前
第3篇:嵌入式芯片核心架构基础:冯·诺依曼架构与哈佛架构的本质差异与场景适配
单片机·嵌入式硬件·架构
UTP协同自动化测试1 小时前
用UTP标准版搭建物联网模组交联测试环境:APP + UART + I2C + GPIO + PWM
嵌入式硬件·物联网·测试工具
要退休的攻城狮1 小时前
跳到千问挖的坑里去了
c++·人工智能·嵌入式硬件·visualstudio
liuluyang5301 小时前
DW_apb_uart 16650 寄存器详解
单片机·嵌入式硬件·uart·基础外设
Wave8452 小时前
STM32低功耗模式
stm32·单片机·嵌入式硬件
Linux猿2 小时前
基于单片机的智能路灯控制系统设计 | 附源码
单片机·嵌入式硬件·课程设计·项目·系统设计·基于单片机的智能路灯控制系统
kaikaile19952 小时前
STM32 USB批量传输CDC类实现指南
stm32·单片机·嵌入式硬件
mftang2 小时前
nRF52805 时钟配置功能详细介绍
单片机·嵌入式硬件
Heartache boy2 小时前
野火STM32_HAL库版课程笔记-TB6612FNG驱动有刷电机
笔记·stm32·单片机