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

[复制链接]
 楼主| 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()函数有不同的地方:

28975fe55201d6f69.png

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

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

874335fe5522ccefe2.png

对比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

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