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

}

}

相关推荐
rit843249910 小时前
PIC32MX + FreeRTOS + ENC28J60 + LwIP 构建通讯管理机(通信网关)程序
stm32
嵌入式-老费10 小时前
esp开发与应用(pwm呼吸灯)
单片机·嵌入式硬件
feifeigo12310 小时前
基于 STM32F103C8T6 的恒定水温控制系统
stm32·单片机·嵌入式硬件
JNX_SEMI10 小时前
EG2129带过流保护全桥驱动芯片:600V耐压双路比较器,硬件级过流保护让全桥设计更安全
单片机·嵌入式硬件
崇山峻岭之间10 小时前
单片机USmart实验
单片机·嵌入式硬件
SmartRadio10 小时前
STM32WLE5 Smart TDMA 完整工程(STOP2 低功耗终极版)-【10】
stm32·单片机·lora·tdma·低功耗自组网·smart tdma
国科安芯10 小时前
AS32S601芯片抗辐照性能试验验证与空间环境适应性分析
前端·分布式·单片机·嵌入式硬件·架构·risc-v·安全性测试
sxstj10 小时前
stm32最小板和uno I2C能直接连接吗?
stm32·单片机·嵌入式硬件
sxstj10 小时前
5伏的传感器能直接在stm32上使用吗?
stm32·单片机·嵌入式硬件
搁浅小泽10 小时前
SCM、MCU、SoC 三者区别与详解
单片机·嵌入式硬件