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

STM32串口DMA通讯

[复制链接]
gtygg 提问时间:2016-11-4 19:45 /
悬赏5ST金币未解决
STM32串口DMA通讯接收到的数据少两个字节,而且最后一个字节为FF
有请专家帮忙提示下,谢谢!

FCWPPZNI(B@@[Q45E77WIZO.png
收藏 1 评论18 发布时间:2016-11-4 19:45

举报

18个回答
gtygg 最优答案 回答时间:2016-11-5 01:32:48
革命小将 发表于 2016-11-4 21:30
兄弟,我串口dma模式发送都没有调通, 你可以把你代码给我参考参考不?

已附上代码
gtygg 最优答案 回答时间:2016-11-5 01:33:16

已附上代码
gtygg 最优答案 回答时间:2016-11-5 01:35:27
suoma 发表于 2016-11-4 22:48
是把07、08接收成了FF、FF

已附上代码
革命小将 回答时间:2016-11-4 21:30:23
兄弟,我串口dma模式发送都没有调通, 你可以把你代码给我参考参考不?
wdshuang09 回答时间:2016-11-4 21:51:11
正在学习中,         
suoma 回答时间:2016-11-4 22:48:57
是把07、08接收成了FF、FF
gtygg 回答时间:2016-11-5 01:31:26
本帖最后由 gtygg 于 2016-11-6 14:26 编辑

STM32串口DMA通讯接收到的数据少两个字节,而且最后一个字节为FF
有请专家帮忙提示下,谢谢!

gtygg 回答时间:2016-11-6 14:27:23
本帖最后由 gtygg 于 2016-11-6 14:29 编辑

没人回答,帖子已撤回,还是自己研究吧
anobodykey 回答时间:2016-11-7 09:52:02
没看到代码,不好说
ccl123 回答时间:2016-11-7 09:56:34
..................
peter001 回答时间:2016-11-7 10:00:09
没用过dma串口,关注一下
五哥1 回答时间:2016-11-7 11:53:39
在生成的工程代码中的 usbd_cdc_if.c 文件中添加如下几行代码:

#define APP_RX_DATA_SIZE 1024
#define APP_TX_DATA_SIZE 1024

这个定义本来就有的,只是建议将定义的值修改为 1024,这样效果更好。这个值的默认值是4,但是
在实际的操作中发现,如果你上位机传输的数据大于4,且并不是4 的整数倍的时候,会出现丢数据或
者数据不返回的问题。其根本原因是因为虚拟串口的数据是以数据流的方式发送出来的,接收数据不
知道每次接收到的数据大小是多少,所以使用了循环队列,但是一旦你的循环队列很小,很容易出现
溢出的问题。比如你设置这个值为5,你发一个 123456 的数据给 MCU,那么 MCU 就会返回 123451
这六个数据。最后的一个数据就是溢出了,所以只能被第一个数据所代替。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

xhzheng 回答时间:2016-11-7 14:15:30
路过,新手;
革命小将 回答时间:2016-11-7 15:12:44

大侠,没有看见代码附件~~~ 可以传我扣扣邮箱吗?  994766146@qq.com
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版