STM32H750 USB 虚拟串口无法被识别问题解决思路总结

一  问题

    笔者使用cubemx的生成STM32H750的USB虚拟串口代码,可无论怎么折腾都显示usb无法被识别。笔者尝试了以下思路去分析问题。最终还是在不显眼的地方找到了蛛丝马脚。成功的解决了问题。这里做个梳理吧。

二 思路分析

首先,我把问题区分成软件和硬件问题。为了验证这个,笔者使用不同的开发评估板都尝试了。还是相同的现象,说明和硬件没啥关系。

  • 堆栈设置太小,USB 无法完成初始化,在 CubeMX 上设置大一点。这里我做了修改,还是不行。
  • 电脑端使用了 USB 分线器,把 USB 直接连接到电脑上。这点笔者尝试使用了不同的电脑和硬件连接,还是不行。
  • 关于DP,DN是否使用上拉电阻,这点笔者查询了芯片手册,H750上面系统内置了上拉。所以这里不需要上拉电阻即可。

最后可以把问题锁定在软件上了。针对软件,笔者作了以下尝试。

  • 尝试降低系统的主频,依旧不行。
  • 降低USB的系统主频,还是不行。
  • 最后发现USB的时钟源我这边选的是:

这里是不是出现了问题呢?我尝试使用RC48的系统时钟源。测试立即ok了。

这里虽然问题解决了,可这里出现了盲点。

三 总结反思

  这里还是有知识盲点的,为什么USB的时钟源只能选择RC48呢?这个笔者找了不少资料,还是没啥清晰的答案,只是有以下考量吧:

USB总线时钟设置为48MHz,一部分是传输电缆本身的衰减因素,另一部分,为了兼容USB1.1的低速传输,还有的就是规范上的一些限制吧。还有就是芯片手册上找到一些说明,不是很清楚的那种。

这里很多问题,就是需要踩坑的。踩到了才知道。不然就不清楚的。看来目前这里只能是记者了。麻烦知道原因的网友告知一下。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值