STM32CubeMx配置USART注意的一个问题

Posted 菜园与青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,接收完就进入上面那个中断回调。

 

以上是关于STM32CubeMx配置USART注意的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

用CubeMX配置STM32串口通信USART

HAL库 STM32CubeMX--USART串口通信--补充

STM32CubeMX(04) 串口中断实验

STM32F103VET6基于STM32CubeMX 配置DMA方式获取内部温度

STM32F429基于CUBEMX的串口中断接收

STM32cubeMX+DMA+USART 接收任意长度的数据