zyf部长 发表于 2022-11-25 19:50

串口DMA接收的数据总是比发送的慢一拍

把USART3配置成DMA接收,空闲中断,接收不定长的数据,发现接收到的数据总是比发送过来的数据慢一拍,例如:
发送 : 0x000x010x02 0x03   接收到的数据:0x000x000x00 0x00
发送 : 0x040x050x06 0x07   接收到的数据:0x000x010x02 0x03
发送 : 0x080x090x0A 0x0B   接收到的数据:0x040x050x06 0x07

pengf 发表于 2022-11-25 19:52

程序问题,贴出来看看

dengdc 发表于 2022-11-25 19:54

估计是FIFO的问题。

zyf部长 发表于 2022-11-25 19:57

DMA_InitStructure.DMA_FIFOMode= DMA_FIFOMode_Disable;
就可以了。

jlyuan 发表于 2022-11-25 19:59

我极少用dma方式

zhanghqi 发表于 2022-11-25 20:01

试试地板的方法

wangzsa 发表于 2022-11-25 20:03

试试普通模式呢

zyf部长 发表于 2022-11-25 20:06

唉,还是没有什么结果,算了,多谢大家啦

SantaBunny 发表于 2023-2-20 22:52

串口DMA在接收过程中,是不定长接收的。就算你上位只发送了1次,例程接收端总会给你2 - N段不定长数据给你。论坛上也有类似的帖子说是底层驱动的某些特性

burgessmaggie 发表于 2023-3-3 20:53

这个是怎么测量出来的呢?            

Henryko 发表于 2023-3-3 22:47

试试不用dma普通模式正常吗

burgessmaggie 发表于 2023-3-4 20:08

慢一拍是什么意思?            

Stahan 发表于 2023-3-5 19:52

改成普通模式看看还有异常吗

minzisc 发表于 2023-3-7 19:58

慢一拍是什么意思?            

loutin 发表于 2023-3-11 21:17

发送和接受数据还能同时吗?            

elsaflower 发表于 2023-3-18 15:44

这个应该是有延时吧。            

V853 发表于 2023-3-21 16:12

大概率是程序问题,中断没实时产生?

Pretext 发表于 2023-3-21 16:12

应该是你的中断标志位设置错了吧。

天天向善 发表于 2023-3-21 16:12

接收数据是什么时候打印的?

Bowclad 发表于 2023-3-22 22:54

试试普通模式有这个问题吗?
页: [1] 2
查看完整版本: 串口DMA接收的数据总是比发送的慢一拍