|
本帖最后由 衔胆栖冰 于 2017-2-15 10:57 编辑 由于项目需要,使用STM32F411的USB做大容量存储设备,用标准库开发。目前遇到问题:USB枚举失败,程序跑飞。 STM32F411使用内部时钟源,的时钟配置如下: 标准库下STM32F411的时钟配置
标准库下的主函数如下: 标准库下编写的主函数
程序跑飞时,通过keil debug观察,一直在循环如下汇编窗口: 程序进入死循环的汇编
通过USB 分析仪抓取枚举数据包,结果如下: 枚举失败的USB分析仪抓取数据包
PC端识别失败: 标准库下枚举失败的结果
程序由官方STM32_USB-Host-Device_Lib_V2.2.0的demo修改而得,demo在STM32F429开发板上运行成功。但改成411就出现了以上问题。 另外,通过CubeMX+HAL库生成的工程,时钟配置与上述一致,生成的工程能成功枚举,结果如下: 使用HAL库枚举成功的结果
HAL库下枚举成功的结果
此举排除了硬件问题的可能性。 由于ST提供的标准外设库与HAL库不兼容,项目需要在标准库下进行USB编程。如上述问题和现象,望各路英雄指点迷津。谢谢! |
微信公众号
手机版
HID设置一样
评分
查看全部评分
评分
查看全部评分
库自带的demo,是在官方开发板上跑通的。根据需要参考demo移植,出现了问题。