OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4477|回复: 7

STM32F446的虚拟串口问题

[复制链接]

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
发表于 2018-9-12 19:39:58 | 显示全部楼层 |阅读模式
50金钱
   本人在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金币,希望各位来给我点帮助,我真的快要崩了、

最佳答案

查看完整内容[请看2#楼]

刚刚用Nucleo F446RE试了一下. 可以成功看到, 附上工程给您参考. 自己改一下Clock Config, 应该就可以直接用了. 似乎没有和其他款有太大差异.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-9-12 19:39:59 | 显示全部楼层
JQChris 发表于 2018-9-13 18:38
今天做了一下,我个人觉得应该是硬件上面的问题。一般的话,USB D+上面都要加上上拉,因为只有这样,才能 ...

刚刚用Nucleo F446RE试了一下.
可以成功看到, 附上工程给您参考.
自己改一下Clock Config, 应该就可以直接用了.
似乎没有和其他款有太大差异.


16_NucleoF446RE_CDC.zip

4.4 MB, 下载次数: 76

Sample

回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-9-12 21:10:27 | 显示全部楼层
1. 利用CubeMX直接生成VCP代码给F446, 有试过吗?
2. 是否有用仿真去看看, 代码最后停在哪? VCP的初始化function设一下断点, USB Connect callback设一下断点看看有没有跑到那边.
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-9-12 21:13:43 | 显示全部楼层
看USB列举, 最有效的方式当然是买硬件USB Analyzer, 只是代价很高.
通常大家是用USB Hound/USB Device View/USBlyzer等软件, 连接测试机端看.
回复

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
 楼主| 发表于 2018-9-13 09:40:29 | 显示全部楼层
sammy902583 发表于 2018-9-12 21:10
1. 利用CubeMX直接生成VCP代码给F446, 有试过吗?
2. 是否有用仿真去看看, 代码最后停在哪? VCP的初始化fu ...

试过CubeMX生成VCP代码给446,不行。
回复

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
 楼主| 发表于 2018-9-13 18:38:16 | 显示全部楼层
sammy902583 发表于 2018-9-12 21:10
1. 利用CubeMX直接生成VCP代码给F446, 有试过吗?
2. 是否有用仿真去看看, 代码最后停在哪? VCP的初始化fu ...

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

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
 楼主| 发表于 2018-9-14 09:02:19 | 显示全部楼层
sammy902583 发表于 2018-9-12 19:39
刚刚用Nucleo F446RE试了一下.
可以成功看到, 附上工程给您参考.
自己改一下Clock Config, 应该就可以 ...

万分感谢。
我记得NUCLEO F446RET6上面是没有把PA9,PA10引出来的吧。
我自己这边买了一个F446ZET6试一下。
现在基本确定不是代码的问题,应该是硬件上面的问题。
回复

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
 楼主| 发表于 2018-9-15 15:35:37 | 显示全部楼层
sammy902583 发表于 2018-9-12 19:39
刚刚用Nucleo F446RE试了一下.
可以成功看到, 附上工程给您参考.
自己改一下Clock Config, 应该就可以 ...

       我使用IAR编程的,使用CubeMX生成的代码是OK的。硬件上应该是没问题的,VBUS和ID的因素也应该排除掉了。
       我现在怀疑是不是标准外设库在F446上跑不起来!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 00:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表