绥靖STM32CubeMx配置USART注意的⼀个问题
HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, Number);意思是接收到Number个字节后,触发HAL_UART_RxCpltCallback,没收满是不会触发的。⽽且HAL_UART_Receive_IT是⼀次性的,触发完后需要时要再调⽤⼀下。条件允许的话,⽤DMA+空闲中断实现不定长接收。
所以在接收处理函数中写成这样:给婴儿起名
烟雨倚重楼/**
* 函数功能: 串⼝接收完成回调函数
* 输⼊参数: ⽆
惊讶表情图片
* 返回值: ⽆
* 说明:⽆雨春
常熟虞山风景区*/
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
AddReceivedUartDataNoCode(aRxBuffer&0x00ff,&g_UartRecBuff[0]);
进京HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);
}
当然,要想进⼊这个中断,第⼀次配置串⼝完成后,在主函数的While(1)前⾯也要加上HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);意思是开启接收中断,只接收1个字节放到aRxBuffer,接收完就进⼊上⾯那个中断回调。
>百日宴主持词