huhao-2025368 发表于 2017-12-13 10:44:20

USB枚举失败

我使用的芯片是STM32F105,Full-speed模式,ST官网的USB-OTG的库,现在枚举过程总是失败,电脑设备管理器已经可以显示USB人体输入设备,但是显示错误码:(10)设备无法启动,通过BUS HOUND发现主机发送获取描述符指令,电路板都没有任何返回,显示:USTS C0010000。。。。
请问下这可能是什么原因造成的,我应该修改那些代码。。。。

maxtch 发表于 2017-12-13 21:28:42

枫天2015 发表于 2017-12-13 16:08
使用CubMX生成吧,用库要注意引脚是否正确。

光知道 CubeMX……这个问题你再纠结 CubeMX 也使不上劲,这是 USB HID 协议实现的问题,和你用了什么底层库无关。我用第三方 USB 库做 HID 一样要解决这些问题。

huhao-2025368 发表于 2017-12-13 14:56:47

中断也正常进去了,收到了来自电脑的setpup包,但是电路板就是没有返回任何数据

枫天2015 发表于 2017-12-13 16:08:38

使用CubMX生成吧,用库要注意引脚是否正确。

maxtch 发表于 2017-12-13 21:26:52

你的 USB HID 报告描述符对不对?是不是正确的返回了报告描述符?你可以尝试一下用 Microsoft Message Analyzer 看看内核 USB 枚举流程是怎么回事,哪个步骤出错了。

huhao-2025368 发表于 2017-12-14 09:48:28

maxtch 发表于 2017-12-13 21:26
你的 USB HID 报告描述符对不对?是不是正确的返回了报告描述符?你可以尝试一下用 Microsoft Message Anal ...

HID报告描述符指的是那一个?我总感觉是程序没有去响应电脑的请求,setup包可以接收,但没有去做相应的处理,端点的设置和硬件应该没有问题吧

maxtch 发表于 2017-12-14 13:41:05

huhao-2025368 发表于 2017-12-14 09:48
HID报告描述符指的是那一个?我总感觉是程序没有去响应电脑的请求,setup包可以接收,但没有去做相应的处 ...

这个你可能要对着 USB 协议文本检查了。您有 MsMA 追踪结果吗?另外,您可以参考一下我写的 USB HID 代码。

uwyciw100 发表于 2017-12-14 16:24:37

我之前做CDC的时候遇到类似问题。你增加堆的空间试试。USB初始化的时候,有个空间分配的操作。

huhao-2025368 发表于 2017-12-14 16:54:12

uwyciw100 发表于 2017-12-14 16:24
我之前做CDC的时候遇到类似问题。你增加堆的空间试试。USB初始化的时候,有个空间分配的操作。 ...

请问下具体修改那个位置你还记得吗?

uwyciw100 发表于 2017-12-14 16:58:13

huhao-2025368 发表于 2017-12-14 16:54
请问下具体修改那个位置你还记得吗?

cube->project->settins里,有个linker settings,修改里面的heap size
页: [1] 2
查看完整版本: USB枚举失败