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条回答
tt朝花夕拾
1楼-- · 2019-07-22 17:05
请问最后解决了么?
lison0103
2楼-- · 2019-07-22 17:39
tt朝花夕拾 发表于 2017-2-10 14:49
请问最后解决了么?

用最新的库文件
Milo
3楼-- · 2019-07-22 18:38
LZ,我最近也遇到着类似问题,我是使用F207的USB HOST的CDC类与外设的导航模块的USB做设备进行通信,结果初始化时进入枚举后返回BUSY,USBH_Process函数就一直在HOST_CTRL_XFER状态。系统我是外接8M的晶振,部时钟定义HSE_Value 也修改为8M了。请教楼主最后这个问题是如何解决的?修改时钟可以枚举成功是指换外部晶振吗?谢谢
lison0103
4楼-- · 2019-07-22 23:11
 精彩回答 2  元偷偷看……
Milo
5楼-- · 2019-07-23 01:02
多谢楼主提醒,确实时钟设置有问题,外部8M时钟输入后经过默认的倍频分频转出来的系统时钟也有38.4M,但USB工作的时钟必须为48M。修改分频参数后就可以了。
shrwrf
6楼-- · 2019-07-23 07:02
楼主能否分享下,谢谢。我现在用的stm32f105,工程要求有pc时,usart1或者usb跟pc通信;没pc时,插U盘,AD采集的数据存到U盘

一周热门 更多>