串口DMA接收的数据总是比发送的慢一拍
把USART3配置成DMA接收,空闲中断,接收不定长的数据,发现接收到的数据总是比发送过来的数据慢一拍,例如:发送 : 0x000x010x02 0x03 接收到的数据:0x000x000x00 0x00
发送 : 0x040x050x06 0x07 接收到的数据:0x000x010x02 0x03
发送 : 0x080x090x0A 0x0B 接收到的数据:0x040x050x06 0x07 程序问题,贴出来看看
估计是FIFO的问题。
DMA_InitStructure.DMA_FIFOMode= DMA_FIFOMode_Disable;
就可以了。 我极少用dma方式
试试地板的方法
试试普通模式呢
唉,还是没有什么结果,算了,多谢大家啦
串口DMA在接收过程中,是不定长接收的。就算你上位只发送了1次,例程接收端总会给你2 - N段不定长数据给你。论坛上也有类似的帖子说是底层驱动的某些特性 这个是怎么测量出来的呢? 试试不用dma普通模式正常吗 慢一拍是什么意思? 改成普通模式看看还有异常吗 慢一拍是什么意思? 发送和接受数据还能同时吗? 这个应该是有延时吧。 大概率是程序问题,中断没实时产生? 应该是你的中断标志位设置错了吧。 接收数据是什么时候打印的? 试试普通模式有这个问题吗?
页:
[1]
2