stm32串口使用DMA模式接收发送数据
在cubeMX中调整DMA相关设置
在DMA Setting里点击Add添加USART1_TX,Mode有两种模式,
一种是普通模式,使用一次发送语句就发一次;
另一种是循环模式,使用一次发送会一直发送。
这里发送我选择普通模式,接收选择循环模式。
省略之前串口相关设置,想了解的可以看我之前串口的相关文章
生成代码,
定义相关变量
#define RXBUFFERSIZE 256 //最大接收字节数
char RxBuffer[RXBUFFERSIZE]; //接收数据
uint8_t aRxBuffer; //接收中断缓冲
uint8_t Uart1_Rx_Cnt = 0; //接收缓冲计数
在main函数中打开串口DMA循环接收
/* USER CODE BEGIN 2 */
HAL_UART_Receive_DMA(&huart1, (uint8_t *)&aRxBuffer