stm32cubeMX中串口中断接收问题HAL_UART_Receive_IT
自娱自乐。 2020-07-01 05:55:42 串口中断接收问题HAL_UART_Receive_IT
在main中开启接收,pdata全局数组
HAL_UART_Receive_IT( &huart1, pdata, 6);
这个函数没有动
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
主要是在回调函数中进行处理
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if( huart == &huart1 )
{
//其他处理
CodeResolve();
}
}
目前测试是接收到什么就返回什么,已知传输6个字节,我发现发7个过去会传前六个回来,且第七个会留到下一次,发2个过去,不会触发回调但是也被保存下来了
两个问题:
如何在接收两个的时候不保存,每次发过去都是空缓存区接收,如何清缓存区?
发7个字节过去时不触发回调,并将缓存清空,因为字节多了,已经错误了?
有没有比较好的方式,感谢