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

STM32串口DMA通讯

[复制链接]
gtygg 提问时间:2016-11-4 19:45 /
阅读主题, 点击返回1楼
收藏 1 评论18 发布时间:2016-11-4 19:45
18个回答
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
zbber 回答时间:2016-11-7 18:14:24
没看到代码,不好说
gtygg 回答时间:2016-11-7 22:40:32
五哥1 发表于 2016-11-7 11:53
在生成的工程代码中的 usbd_cdc_if.c 文件中添加如下几行代码:

#define APP_RX_DATA_SIZE 1024

谢谢,谢谢大师的指点
gtygg 回答时间:2016-11-7 22:42:45
zbber 发表于 2016-11-7 18:14
没看到代码,不好说

谢谢,代码已撤回,还在研究
zengyi703-16313 回答时间:2016-11-8 10:28:27
谢楼主分享
12
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版