stm32 串口的串口采用DMA方式接收数据测試
本文博客链接:,作者:jdh,转载请注明.
串口可以配置成用DMA的方式接收数据,不过DMA需要定长才能产生接收中断,如何接收可变长度的数据呢?
1.将RX脚与一路時钟外部引脚相连,当串口一帧发完,即可利用此定时器产生超时中断.这个实时性较高,可以做到1个字节实时监测.
2.不改变硬件,开启一个定时器监控DMA接收,如果超时则产生中断.这个实时性不高,因为超时时间必须要大于需要接收帧的时间,精度不好控制.
3.stm32 串口单片机有的串口可以监测总线是否处于空闲,如果空闲则产生中断.可以用它来监测DMA接收是否完毕.这种方式实时性很高.
本文采用第3种方式.在波特率576000下大数据包冲击证明可行.
测試:单片机每次收到此包,一个IO作电平跳转,然后处理返回一包.