STM32串口DMA通讯接收数据少两个字节

2019-07-14 16:05发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
请叫我杰西卡
1楼-- · 2019-07-15 05:19
本帖最后由 gtygg 于 2016-11-6 14:29 编辑

没人回答,帖子已撤回,还是自己研究吧
vywyefswer
2楼-- · 2019-07-15 09:49
没看到代码,不好说
zkzk196599
3楼-- · 2019-07-15 13:31
 精彩回答 2  元偷偷看……
jerry181855
4楼-- · 2019-07-15 19:04
没用过dma串口,关注一下
csw_ying
5楼-- · 2019-07-15 21:35
在生成的工程代码中的 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
这六个数据。最后的一个数据就是溢出了,所以只能被第一个数据所代替。
木木川BB
6楼-- · 2019-07-15 23:06
路过,新手;

一周热门 更多>