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条回答
正点原子
1楼-- · 2019-07-21 04:53
可以试试st最新的库,
STM32_USB-Host-Device_Lib_V2.2.0
正点原子
2楼-- · 2019-07-21 06:35
 精彩回答 2  元偷偷看……
lison0103
3楼-- · 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盘,可以正常读写
是兼容性问题还是什么?
有人遇到吗?
lele
4楼-- · 2019-07-21 12:46
楼主能把程序上传一下,看一下?
shenyae86
5楼-- · 2019-07-21 16:15
 精彩回答 2  元偷偷看……
shenyae86
6楼-- · 2019-07-21 20:16
为何要用8M晶振,我直接是原装的25M晶振

一周热门 更多>