请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

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

[UART] STM32H743串口DMA方式收发,发送偶尔出错

[复制链接]

57

主题

88

回帖

259

积分

高级会员

积分
259
发表于 2022-1-15 10:13:32 | 显示全部楼层 |阅读模式
使用STM32H743串口USART1进行DMA方式收发,接收1个包后,马上回复一个包(长度不超过250字节),周期100ms,收发DMA都使用DMA_NORMAL方式,没有使用中断。
问题现象:接收始终正常,但是DMA发送偶尔会发出巨长包(4K左右),内容是本次发送内容的重复,出错的概率平均为3小时左右1次(随机性)。

请问:这可能是USART的问题还是DMA的问题呢?

感谢!!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-1-15 10:38:06 | 显示全部楼层
应该是你的程序工作异常了吧。
回复

使用道具 举报

3

主题

1216

回帖

1225

积分

至尊会员

积分
1225
发表于 2022-1-15 10:51:39 | 显示全部楼层
估计是你程序的问题,你发送不用DMA,看看正常不?
回复

使用道具 举报

57

主题

88

回帖

259

积分

高级会员

积分
259
 楼主| 发表于 2022-1-15 11:21:44 | 显示全部楼层
@eric2013 @morning_enr6U 多谢
工作程序是正常的,不用DMA发送有点麻烦,因为需要发送的数据包长度不定(不超过250字节都可以),用查询方式的话对工作程序影响很大。
怀疑是不是USART产生了发送异常,但是不知道怎么去验证。

谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-1-16 09:52:30 | 显示全部楼层
twodiamond 发表于 2022-1-15 11:21
@eric2013 @morning_enr6U 多谢
工作程序是正常的,不用DMA发送有点麻烦,因为需要发送的数据包长度 ...

可以考虑把所有的DMA错误标准和串口错误标志打开,看看是不是有对应的检测到。
回复

使用道具 举报

57

主题

88

回帖

259

积分

高级会员

积分
259
 楼主| 发表于 2022-1-17 14:23:29 | 显示全部楼层
eric2013 发表于 2022-1-16 09:52
可以考虑把所有的DMA错误标准和串口错误标志打开,看看是不是有对应的检测到。

谢谢,这应该是一个好主意
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2022-6-2 00:14:29 | 显示全部楼层
twodiamond 发表于 2022-1-17 14:23
谢谢,这应该是一个好主意

楼主,有结果了嘛?
我这里使用空闲中断,配合DMA收发,发现有时候发送的数据不完整,只有第一个字节
然后长时间运行时发,整个串口都断掉了,使用示波器测试发现芯片发送都停止了,在发送时和中断里都有清除错误的标志位的操作
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-6-3 00:04:08 | 显示全部楼层
weboser 发表于 2022-6-2 00:14
楼主,有结果了嘛?
我这里使用空闲中断,配合DMA收发,发现有时候发送的数据不完整,只有第一个字节
...

这个参考过没

STM32H7基于STM32CubeMX的串口DMA+空闲中断接收不定长数据实现(HAL库1.9.0自带函数实现)
https://www.armbbs.cn/forum.php? ... 8553&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

13

回帖

13

积分

新手上路

积分
13
发表于 2022-6-19 11:37:59 | 显示全部楼层
用LL库实现了一个,乒乓缓存+FIFO,1.5M不丢数据:
https://blog.csdn.net/qq_2055361 ... 1001.2014.3001.5501
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 13:57 , Processed in 0.171950 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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