前言:STM32的DMA可以绕开cpu进行数据传输,串口的DMA使得cpu的资源得到部分释放。
(使用DMA之前做好flash的初始化,裸机程序一般都是库函数初始化好的)
1. cubemx配置好串口和DMA
2.main函数初始化串口DMA(因为使用rtthread操作系统,所以main.c和main函数都是自己写的)
3. 串口空闲中断初始化
4.串口空闲中断服务函数需要自己编写,自己添加(编写最好编写在uart.c)
5.编写串口空闲中断回调函数:
以上就是设置DMA进行不定长接收的方法,因为串口有一个寄存器:USART_SR:



