Bootstrap

使用HAL库函数HAL_UART_Receive_IT();接收一定大小数据帧出现串口报错huart->ErrorCode等于4

当我们使用HAL_UART_Receive_IT();设置为HAL_UART_Receive_IT(&huarst1,buf,5);
如果我们故意传入的数据为大于5的一帧连续快速传入,在第一帧时,串口会接收前5个数据,构成一个单独的帧,同时使用回调函数HAL_UART_RxCpltCallback()。
**但是,**第二次再传入“123456”数据帧后,程序虽然也能成功调用HAL_UART_RxCpltCallback(),并且调用结束后使用HAL_UART_Receive_IT(&huarst1,buf,5);继续接收数据。
程序就再也进不去回调函数HAL_UART_RxCpltCallback(),只能每次一接收到数据就进入回调函数HAL_UART_ErrorCallback();在串口结构体中可以看到其错误返回是:ErrorCode等于4通常表示在使用HAL库的USART(通用同步异步收发器)中发生了帧错误。

下面是第一次123456传入时的情况。
在这里插入图片描述

在这里插入图片描述

下面是第二次123456传入时的情况。
在这里插入图片描述

在这里插入图片描述
目前还没找到解决办法,先写个帖子放在这。

;