[STM32F1] STM32 USB BULK传输 2K数据如何发送

[复制链接]
3802|6
 楼主| 为爱一拼 发表于 2015-1-22 21:43 | 显示全部楼层 |阅读模式
各位大牛好,我现在在做STM32 USB的bulk传输,驱动是利用libusb,下位机要把2K数据通过USB传输到PC,利用下边这个函数,UserToPMABufferCopy(data, ENDP1_TXADDR, dataNum);那么发送2K数据时,是否可以直接令dataNum=2k,然后USB就可以自动分成多包发送呢?
s_f_tan 发表于 2015-1-23 11:16 | 显示全部楼层
USB的硬件缓冲区只有512B,还要考虑收发,只能自己讲数据包拆包分开发送
 楼主| 为爱一拼 发表于 2015-1-24 11:30 | 显示全部楼层
s_f_tan 发表于 2015-1-23 11:16
USB的硬件缓冲区只有512B,还要考虑收发,只能自己讲数据包拆包分开发送

谢谢您的指导,我明白了,也就是说dataNum最大只能设定为64,我想发送2K数据的话,需要分成多个包(每包64)进行传送。
另外还想请教个问题:我用STM32通过SPI读取外接AD,单独AD程序运行正常,串口打印数据正确,单独的USB bulk传输我也实现了大量的数据从STM32发送到上位机,但是AD和USB联调时,在上位机收不到AD的数据,把AD中断这行程序注释之后,上位机就可以收到我自己设定发的数据了,看起来好像AD中断和USB发生了一些冲突,这点我还不明白,希望能得到您的帮助,谢谢了!
huangqi412 发表于 2015-1-24 12:12 | 显示全部楼层
为爱一拼 发表于 2015-1-24 11:30
谢谢您的指导,我明白了,也就是说dataNum最大只能设定为64,我想发送2K数据的话,需要分成多个包(每包6 ...

LED+示波器。。。
 楼主| 为爱一拼 发表于 2015-1-24 15:07 | 显示全部楼层
huangqi412 发表于 2015-1-24 12:12
LED+示波器。。。

LED和示波器?用来检验AD和USB的冲突?不太懂,能不能麻烦您说的再详细点,谢谢了
huangqi412 发表于 2015-1-24 21:31 | 显示全部楼层
为爱一拼 发表于 2015-1-24 15:07
LED和示波器?用来检验AD和USB的冲突?不太懂,能不能麻烦您说的再详细点,谢谢了 ...

LED+示波器屡试不爽。  找问题出在哪。。。
s_f_tan 发表于 2015-1-26 11:15 | 显示全部楼层
这个要看你程序设计了,2K的数据在分包传输时,又没有被AD禁止掉USB中断,或者被清除什么标记了,硬件上除非两个中断的太厉害了,基本都在中断调度了不能完整的发出数据。软件程序上的时序问题多些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

21

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部