你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为何stm32使用cubemx生成的串口DMA发送只发送部分数据

[复制链接]
wdliming-222461 提问时间:2019-8-10 13:34 /
参考了https://www.stmcu.org.cn/module/ ... 7-1-1.html?original《HAL库UART按DMA方式发送和接收函数简析及测试》的文章
我是用的是stm32F103C8T6,用cubemx4.27导入楼主的工程,代码也是一模一样的,为何会出现以下的现象:



收藏 评论10 发布时间:2019-8-10 13:34

举报

10个回答
wdliming-222461 回答时间:2019-8-10 13:36:44
2019-08-10_132941.png
发送和接收个数不相符啊??
wenyangzeng 回答时间:2019-8-10 14:35:40
wdliming-222461 发表于 2019-8-10 13:36
发送和接收个数不相符啊??

可能是系统时钟没有工作在正确的72MHZ,波特率有误。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wdliming-222461 回答时间:2019-8-10 19:13:38
wenyangzeng 发表于 2019-8-10 14:35
可能是系统时钟没有工作在正确的72MHZ,波特率有误。

这个不是问题,肯定是72MHZ的。
wdliming-222461 回答时间:2019-8-11 08:34:34
那位大神可以帮忙解释啊~???
你若安好_清风徐来 回答时间:2019-8-12 10:30:03
你DMA接收字符长度是多少,一般如果你设置20个字节那么你应该每20个字节发送,你发送几百个字节试一试,如果几百个字节误差20个字节内那可能就是你DMA接收字节问题了(这个应该不是问题是DMA机制问题,你要是觉得不对你把DMA接收字节改为1就可以了),如果误差大于20个有可能是你中断处理时间太长导致数据丢失或者你配置问题,建议你你一个一个字节发送看看效果
QQ图片20190812102808.png

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

wdliming-222461 回答时间:2019-8-12 15:15:45
我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。
wdliming-222461 回答时间:2019-8-12 15:17:00
你若安好_清风徐来 发表于 2019-8-12 10:30
你DMA接收字符长度是多少,一般如果你设置20个字节那么你应该每20个字节发送,你发送几百个字节试一试,如 ...

我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。
你若安好_清风徐来 回答时间:2019-8-13 09:20:27
wdliming-222461 发表于 2019-8-12 15:17
我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。
...

建议上传代码,我也一时间找不出问题所在
wdliming-222461 回答时间:2019-8-13 09:48:22
你若安好_清风徐来 发表于 2019-8-13 09:20
建议上传代码,我也一时间找不出问题所在

好的好的,我回家把代码上传看看,反正是按照连接上面的来的。
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版