LELEHEHE-362813 发表于 2018-6-28 15:34:36

STM32f103 USB 双缓存发送数据 每次上位机接收多64字节的0

做STM32f103 USB 双缓存的时候, 采取ENP3的TXaddr1和TXaddr0的双缓存ping-pong发送机制,每次上位机接收完4K数据, 4K数据前64个字节全部是0,后面才是上位机要的数据,上位机取数据的时候,舍弃前64字节的0,才能正常使用,不知道这是为什么造成下位机(STM32)发送多64字节的问题

yu0405jie 发表于 2018-6-28 15:52:12

你的意思是上位机实际接收了4K+64字节的数据吗?还是仍然接收到了4k字节数据,只不过前64个是0,实际中就少接收了64字节的应得数据?

anobodykey 发表于 2018-6-28 20:25:38

cube库吗?这个应该是库的问题,有个文件有问题,PCD_SET_EP_DBUFx_CNT这个定义你可以看下

LELEHEHE-362813 发表于 2018-6-29 00:25:50

yu0405jie 发表于 2018-6-28 15:52
你的意思是上位机实际接收了4K+64字节的数据吗?还是仍然接收到了4k字节数据,只不过前64个是0,实际中就少 ...

仍然接收到了4k字节数据,只不过前64个是0,实际少了64字节数据

yu0405jie 发表于 2018-6-29 10:18:40

是挺奇怪的,你确定写入数据时缓冲区的地址和发送的是一致的

LELEHEHE-362813 发表于 2018-6-29 10:57:39

缓冲区的地址和发送是一致的

LELEHEHE-362813 发表于 2018-6-29 11:24:37

anobodykey 发表于 2018-6-28 20:25
cube库吗?这个应该是库的问题,有个文件有问题,PCD_SET_EP_DBUFx_CNT这个定义你可以看下 ...

PCD_SET_EP_DBUFx_CNT在哪个文件下

zts329547875 发表于 2018-6-29 12:15:20

用环形缓冲区就可以解决了

anobodykey 发表于 2018-6-29 23:22:01

LELEHEHE-362813 发表于 2018-6-29 11:24
PCD_SET_EP_DBUFx_CNT在哪个文件下

应该是在pcd.h文件中,你搜索一下
页: [1]
查看完整版本: STM32f103 USB 双缓存发送数据 每次上位机接收多64字节的0