STM32F446的虚拟串口问题

2019-07-20 06:08发布

   本人在F407上成功调试出虚拟串口程序,然后移植到F446上面。
   现在已经确认F446 USB时钟处于48M,强制为Device模式。
   原先是基于标准外设库进行程序编写的,怎么都调试不出来。
   今天利用CubeMX生成VCP代码,先生成给407,OK。之后就改了一下器件,
改成F446,结果还是出不来。经过这几天的调试,我觉得应该不是代码的问题!!
   我严重怀疑是硬件的问题,我于是测了一下D+和D-的电压,发现F407的D+是2.3V,
D-是几mv。但是F446的D+却是几mv,于是我给D+加了上拉电阻上拉的到3.3V!电脑上面突然出现了未识别的USB设备。
   现在打算打一个只和USB有关的板子看看,另外请教如何去看USB的枚举和设备描述问题。
   50金币,希望各位来给我点帮助,我真的快要崩了、
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
sammy902583
1楼-- · 2019-07-20 07:57
 精彩回答 2  元偷偷看……
sammy902583
2楼-- · 2019-07-20 11:49
1. 利用CubeMX直接生成VCP代码给F446, 有试过吗?
2. 是否有用仿真去看看, 代码最后停在哪? VCP的初始化function设一下断点, USB Connect callback设一下断点看看有没有跑到那边.
sammy902583
3楼-- · 2019-07-20 12:04
看USB列举, 最有效的方式当然是买硬件USB Analyzer, 只是代价很高.
通常大家是用USB Hound/USB Device View/USBlyzer等软件, 连接测试机端看.
JQChris
4楼-- · 2019-07-20 14:01
 精彩回答 2  元偷偷看……
JQChris
5楼-- · 2019-07-20 16:10
sammy902583 发表于 2018-9-12 21:10
1. 利用CubeMX直接生成VCP代码给F446, 有试过吗?
2. 是否有用仿真去看看, 代码最后停在哪? VCP的初始化fu ...

今天做了一下,我个人觉得应该是硬件上面的问题。一般的话,USB D+上面都要加上上拉,因为只有这样,才能识别到USB设备。F4一般D+和D-都直接串了一个电阻,无需上拉,D+上面有2.4V的电压。但是我无论怎么灌入代码,D+上面的电压都是几mv。这电脑肯定无法识别到了。。。
JQChris
6楼-- · 2019-07-20 21:07
 精彩回答 2  元偷偷看……

一周热门 更多>