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
这六个数据。最后的一个数据就是溢出了,所以只能被第一个数据所代替。

xhzheng 发表于 2016-11-7 14:15:30

路过,新手;

革命小将 发表于 2016-11-7 15:12:44

gtygg 发表于 2016-11-5 01:32
已附上代码

大侠,没有看见代码附件~~~ 可以传我扣扣邮箱吗?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

谢楼主分享
页: 1 [2]
查看完整版本: STM32串口DMA通讯