小小子-396415 发表于 2012-10-27 21:29:27

请教一个USB的问题

环境:XP,STM32F107VC
设备侧代码是根据STM32的大容量存储改的。EP1为IN,EP2为OUT。都为BULK传输类型。
USB驱动:是根据圈圈的USB驱动改的。
上位机:MFC,使用DriverIOControl调用驱动中的HANDLE,进行读写的。写过程用的发送按钮。读过程则是使用一个死循环的线程在后台循环接收。
功能:设备侧代码接收到USB发送的数据后直接通过USB反给PC,也就是上位机发什么就收到什么。
问题:
PC单发单收都没有问题,通过跟踪,设备侧代码确实收到了数据并返回了。
但是PC侧如果循环发送数据,循环次数大于2时,接收线程只能接收到两组。如果再发送,接收的是上一次发送的数据。通过 bus hound跟踪,发送过程没有问题,都通过USB总线发下去了。但是接收数据的次数确实有问题。我没查出是什么原因,希望坛子里的大神给点意见。谢谢
以上代码开发都是基于圈圈的USB做的。

小小子-396415 发表于 2012-10-28 19:47:54

回复:请教一个USB的问题

自己解决了。
下层接收USB数据的Buffer满了。修改STM32侧代码,整了一个队列接收数据,问题解决。
页: [1]
查看完整版本: 请教一个USB的问题