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

}

}

相关推荐
fie8889几秒前
基于 STC15F104E 的 T12 白光烙铁控制器方案
stm32·单片机
yuan199978 分钟前
基于 STM32 的工程级扫地机器人方案
stm32·嵌入式硬件·机器人
绿竹-大地1 小时前
韦东山开发板imx6ull移植WS1-CBS-Kit
嵌入式硬件·wifi
qq_411262421 小时前
wifi自适应
stm32·单片机·嵌入式硬件
洋九八2 小时前
STM32 (NVIC)中断
stm32·单片机·嵌入式硬件
12.=0.2 小时前
【stm32_9.2】FreeRTOS的任务管理:任务策略,调度器启用,任务创建、删除、挂起、恢复
c语言·stm32·单片机·嵌入式硬件
国产电子元器件2 小时前
ACS712国产替代推荐:电流检测芯片选型指南
单片机·嵌入式硬件·物联网
徐怀江3 小时前
ModusToolbox for vscode使用小记
ide·vscode·单片机·mcu·infineon
洋九八4 小时前
STM32 串口(USART)配置
stm32·单片机·嵌入式硬件
华科大胡子4 小时前
单片机IO不够?ULN2003A救急方案
单片机