我这里使用的芯片是STM32F103RBT6
1,正常配置一个串口,勾选uart4,
2,为串口配置一个接收的DMA
3,打开串口中断
4,生成软件,并在软件里开启串口空闲中断
5,在串口中断函数里,检测空闲中断,获取接收的字符串长度
这里面需要注意的是,DMA的剩余长度是指,假如我们一开始调用HAL_UART_Receive_DMA函数指定的接收长度是100,现在接收到了20字符,那么就剩余了80个字符的空间,DMA剩余长度指的就是这个剩余的空间。拿我们一开始指定的长度减去这个剩余的长度就是我们接收到的字符的长度。