一.首先是大家想知道的接收发送不定长数据
这里我仅仅推荐一种方法,虽然有很多方法STM32 HAL CubeMX 串口IDLE接收空闲中断+DMA_idle line detection interrupt-优快云博客
但是我还是仅仅推荐我这种:利用HAL库的 HAL_UARTEx_ReceiveToIdle_DMA()函数,代码简洁。在HAL里面能用回调函数直接实现功能的就别去自己写逻辑代码
配置就是打开串口中断和DMA接收和发送,注意中断优先级要比系统时钟中断优先级低,
1.首先在usart.c的串口初始函数里面(打开DMA接收,关闭DMA传输一半回调函数)
uint8_t receiveData[100];
/* USER CODE BEGIN USART2_Init 2 */
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, receiveData, sizeof(re