打印
[STM32F1]

CubeMX配置STM32F107识别U盘概率很低的问题已解决。(疑似BUG)

[复制链接]
584|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cry1109|  楼主 | 2020-12-25 10:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cry1109 于 2020-12-25 10:45 编辑

前段时间发的USB识别U盘太少的求助帖,在网上搜了一下,发现用CubeMX配置USB的也遇到过同样的问题。经过这几天的摸索问题已解决,希望这个帖子能帮到遇到同样问题的同学。

手上有两块板子,一块407一块107,407识别U盘的几率很大,想着407毕竟M4内核性能比107强太多,107能识别的U盘少只是芯片的原因所以就没去仔细对比两个芯片的USB驱动程序。后来找了STM32F1系列的BSP包里的USB-MSC的例程,把例程里的USB驱动和CubeMX生成的USB驱动对比,发现USB初始化里的USBH_LL_Init()函数有不同的地方:


上面屏蔽掉的代码是CubeMX生成的,下面的是BSP例程里的代码,可以发现初始化配置有所不同,索性就把BSP例程里的初始化代码替换成CubeMX生成的,下载、插上U盘,终于一直识别不了的U盘能够正常识别了,一口气换了快10个U盘都能够正常识别。

然后又重新打开407的程序,找到USBH_LL_Init()函数:


对比3个USBH_LL_Init()函数,就只有107的CubeMX代码没有hhcd_USB_OTG_FS.Init.phy_itface = USB_OTG_EMBEDDED_PHY这项初始化,而正式因为没有这个初始化导致USB识别的枚举U盘时一直不通过,加上这行代码后能够识别的U盘至少在95%以上,亲测的10多个U盘都能正常识别,U盘格式改为FAT32后都够正常读写U盘。

使用特权

评论回复
沙发
yklstudent| | 2020-12-25 17:23 | 只看该作者
感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

172

帖子

4

粉丝