硬汉嵌入式论坛

 找回密码
 立即注册
查看: 726|回复: 3
收起左侧

[UART] DMA回调有问题

[复制链接]

19

主题

28

回帖

85

积分

初级会员

积分
85
发表于 2024-12-14 16:14:11 | 显示全部楼层 |阅读模式
目前环境就是使用DMA将上位机100个HEX数据接收过来并将数据重新发送回去,为什么就是去的数据只有发送区的一半,而且正好是偶数数据没有发出来,代码如下

接收区

接收区

发送区

发送区

DMA配置

DMA配置

DMA配置

DMA配置
微信图片_20241214161221.jpg
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-12-14 23:08:04 | 显示全部楼层
单字节接收来不及处理。用DMA接收串口数据最好用空闲中断来判断帧接收完成。
回复

使用道具 举报

19

主题

28

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2024-12-16 15:47:13 | 显示全部楼层
hilley 发表于 2024-12-14 23:08
单字节接收来不及处理。用DMA接收串口数据最好用空闲中断来判断帧接收完成。

按你这么说为什么就偶数帧没有收到,而且发送的是接收的一般,如果是来不及接收,数据的返回应该具有随机性
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2024-12-17 08:26:09 | 显示全部楼层
Luo990619 发表于 2024-12-16 15:47
按你这么说为什么就偶数帧没有收到,而且发送的是接收的一般,如果是来不及接收,数据的返回应该具有随机 ...

可以这样排查下,串口助手每次发1个字节数据,间隔10ms发一次,看看处理的过来不,如果正常继续减小间隔。如果某间隔处理不过来,说明就是你这个方式效率确实低了。

如果10ms间隔都出错,说明程序有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 05:22 , Processed in 0.040586 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表