我需要用STM32F429通过USB上传一张2-3Mbyte图片,根据HID的例程修改,通过USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, data_to_send, 64)函数每次上传64个字节一个包一个包地传。找到的例程基本就是用这个发送函数发送一个小于64字节的包。如果单独这样一个包一个包地循环发送,丢包会很严重,如果每个包发送中间加1ms的延时,则不会丢包。但传送效率大受影响。各方面搜索了下。说是有2种思路,一种是每一个包发送完成后会产生一个中断,函数进入EP1_IN_Callback回调函数在里面加一个标志位。但HAL库里面没有找到相应的回调函数。第二个方法是说每一个包发送前去判断是否收到主机发送的IN 令牌。 但我尝试在每次发包前去判断OTG_FS_DIEPINT1寄存器的ITTXFE位,也没有什么效果。所以请教下有用过HAL库做过USB多包传输的朋友。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>