做STM32f103 USB 双缓存的时候,发送4K数据里面前64字节是0
http://gg.eefocus.com/www/delivery/lg.php?bannerid=0&campaignid=0&zoneid=462&loc=http%3A%2F%2Fwww.stmcu.org.cn%2Fmodule%2Fforum%2Fforum.php%3Fmod%3Dviewthread%26tid%3D616424%26extra%3Dpage%253D1%2526filter%253Dtypeid%2526typeid%253D5&referer=http%3A%2F%2Fwww.stmcu.org.cn%2Fmodule%2Fforum%2Fforum.php%3Fmod%3Dforumdisplay%26fid%3D244%26filter%3Dtypeid%26typeid%3D5&cb=e943af9e0e
做STM32f103 USB 双缓存的时候, 采取ENP3的TXaddr1和TXaddr0的双缓存ping-pong发送机制,每次上位机接收完4K数据, 4K数据前64个字节全部是0,后面才是上位机要的数据,上位机取数据的时候,舍弃前64字节的0,才能正常使用,不知道这是为什么造成下位机(STM32)发送多64字节的问题
看来签到帖没配链接,大家都懒得搜啊。。。
你做CDC吗? USB的Bulk传输有两种方式认为数据传输完成
1. 发送的数据小于MaxPacketSize,这里MaxPacketSize是64
2. 发送的数据刚好等于请求的数据。即Windows中ReadFile()的size参数
如果发送的包全为64,则驱动认为接下来还有数据,会继续去读取USB的Bulk Endpoint,所以你感觉上收不到数据 建议参考一下下面的链接:
http://blog.csdn.net/whw8007/article/details/9566281
http://bbs.21ic.com/icview-159300-1-1.html
页:
[1]