STM32F107 USB HOST U盘

2019-07-20 23:45发布

本帖最后由 lison0103 于 2016-1-8 19:48 编辑

使用stm32F107主控做usb host连接U盘
参考了原子F407的例子,外接8M的晶振,改了stm32f10x.h中的外部时钟定义HSE_Value 为实际用的晶振频率
用RCC_GetClocksFreq()这个函数获取系统时钟,SYSCLK:23040000Hz; HCLK:23040000Hz; PCLK1:11520000Hz; PCLK2:23040000Hz ADCCLK:11520000Hz

现在插U盘,状态机可以检测到插入和断开,但是枚举不成功。
枚举函数进入第一步USBH_Get_DevDesc(pdev , phost, 8) 就失败了,返回状态USBH_BUSY
然后USBH_Process函数就一直在HOST_CTRL_XFER状态。
不知道有没有人遇到过,或者有什么方法思路。谢谢!





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
lison0103
2019-07-21 07:40
本帖最后由 lison0103 于 2016-1-22 11:57 编辑

修改时钟后,U盘可以枚举了,但是还有问题:
1、插入一个8GU盘,一直进入USBH_Process-->HOST_CLASS-->USBH_MSC_BOT_USB_TRANSFERS,没有进入USBH_MSC_DEFAULT_APPLI_STATE
2、插入一个4GU盘,连插入都检测不到
3、用自己做的一个USB模拟U盘的设备连接,可以进入USBH_MSC_DEFAULT_APPLI_STATE,但是设备那边一会就识别没连接上,断开了
4、插入另外一个4GU盘,可以正常读写
是兼容性问题还是什么?
有人遇到吗?

一周热门 更多>