STM32
直播中

陈利妮

7年用户 1029经验值
私信 关注
[问答]

libusb + STM32F4 + USB3300软件运行中异常关闭,,如何清除USB软件异常关闭后的残余数据?

libusb + STM32F4 + USB3300软件运行中异常关闭,ARM发送给PC的数据,PC没有读
软件重启后,读回的数据错位。刚开始收到的是上次的残余数据。怎么处理能清除残余数据?

回帖(2)

李洁

2024-4-22 09:28:06
软件打开的时候直接发一个 USB 复位指令,这样的话缓冲区可以被清理掉。
举报

唯爱萌meng

2024-4-22 15:55:26
要清除USB软件异常关闭后的残余数据,可以尝试以下几种方法:

1. 重新插拔USB设备:将USB连接线从PC上拔出,然后重新插入,这将清除PC端的USB缓冲区。

2. 重启PC:重新启动PC将会清除所有USB缓冲区,并重新初始化USB。

3. 在STM32F4上重新初始化USB:在STM32F4上重新初始化USB控制器,这将清除STM32F4端的USB缓冲区。

4. 通过libusb函数清除残余数据:在PC端的应用程序中使用libusb函数来清除残余数据。可以尝试使用libusb_reset_device或libusb_clear_halt函数来重置或清除USB端点的状态,以清除残余数据。

在重新初始化USB之前,建议先等待一段时间,让USB设备完全断开连接,然后再重新连接。这样可以确保所有缓冲区中的数据都被清除。另外,为了避免残余数据的问题,建议在PC端的应用程序中确保及时读取和处理来自STM32F4的数据,以防止数据错位。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分