[STM32F1] 请教:STM32F107 USB能够识别的U盘很少。

[复制链接]
1344|9
 楼主| cry1109 发表于 2020-12-21 10:55 | 显示全部楼层 |阅读模式

CubeMX生成的代码,USB只能识别很少一部分的U盘。同一块板子,不用CubeMX生成的代码,使用标准库移植的USB库,能够识别大部分的U盘,包括CubeMX代码识别不了的U盘都能识别。而且还有一个很奇怪的现象,先烧录标准库的程序,能够识别的U盘在不断电的情况下插在USB上,然后烧录CubeMX代码后就又能够识别U盘了,U盘重新插拔后就又识别不了。


追踪CubeMX代码发现,USB枚举过程中,一直无法正常获取设备描述符,USB通过控制传输发送一个Setup包后等待设备返回相应的设备描述符,可是设备未能正常返回数据,提示USB处于NotReady状态。



212735fe00c20a7e24.png
提示USB未就绪:
99075fe00c659fe5c.png
获取设备描述符的状态机里,一直卡在CTRL_SETUP_WAIT这个状态,这个状态下最外层的if语句:
if (URB_Status == USBH_URB_DONE)
{
        //成功获取设备描述
}
else
{
        if ((URB_Status == USBH_URB_ERROR) || (URB_Status == USBH_URB_NOTREADY))
        {
                //获取设备描述符失败,URB_Status == USBH_URB_NOTREADY
        }
}
请教一下,有没有类似的问题,怎么解决。
li880wert 发表于 2020-12-21 15:14 | 显示全部楼层
没遇到过,淘宝上买了10多个U盘,便宜的几块钱,好的30多,容量最大的64G,最小的16G,从没遇到你这问题
caizhiwei 发表于 2020-12-21 15:31 | 显示全部楼层
把驱动删掉重新再来~
嵌入小菜菜 发表于 2020-12-22 14:46 | 显示全部楼层
直接淘宝买U盘,不香吗?
 楼主| cry1109 发表于 2020-12-22 16:03 | 显示全部楼层
嵌入小菜菜 发表于 2020-12-22 14:46
直接淘宝买U盘,不香吗?

我是用STM32F107的USB接口读取U盘。
木木guainv 发表于 2021-1-11 10:21 | 显示全部楼层
U盘本来就很脆弱
磨砂 发表于 2021-1-11 10:25 | 显示全部楼层
U盘出现的很多问题都比较奇怪
晓伍 发表于 2021-1-11 10:28 | 显示全部楼层
能识别的那部分里边识别的稳定吗
八层楼 发表于 2021-1-11 10:33 | 显示全部楼层
驱动是不是出现问题了
观海 发表于 2021-1-11 10:35 | 显示全部楼层
没有遇到过楼主这样的情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

172

帖子

4

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