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

为何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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版