STM32 vcp例程 调试

2019-07-20 19:03发布

最近在调STM32的虚拟串口,参考了官网的例程USB-FSD下的virtual com port例程,
现在USB端口识别了,驱动安装成功,电脑上打开串口调试助手,发现串口:有时可以打开,有时不能打开。
比如用JLINK刚下好程序(已设置自动重启),串口就无法打开,必须要断电重启才行;
还有用jlink仿真器调试的时候,也就无法打开串口(这很麻烦啊,不能在线调试),请问这个是什么原因,是仿真器的兼容问题吗?
谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
xuande
1楼-- · 2019-07-20 19:16

虚拟串口,归根结底还是USB,必须遵守USB协议。
USB协议规定,主机和从机之间有紧密的通讯行为,要求对方的回复时间在毫秒甚至更短,
用仿真器停顿的时候,这个时间关系就被破坏了,主机认为子机有问题而停止通讯。

所以必须全速运行。要在线调试,只能用设断点的方法,
然后断开USB,再全速运行。

xiaomowx321
2楼-- · 2019-07-20 19:50
xuande 发表于 2016-11-3 20:22
虚拟串口,归根结底还是USB,必须遵守USB协议。
USB协议规定,主机和从机之间有紧密的通讯行为,要求对 ...

你好,我懂你的意思,我没打断点,调试模式进入后,直接全速运行,这个时候,串口助手就打不开了。。
你觉得和仿真器有没有关系?
我参考了网友分享的VCP代码,感觉也没改什么底层,无非就是配置GPIO什么的,但是貌似他们的可以使用。。
xuande
3楼-- · 2019-07-21 00:03
xiaomowx321 发表于 2016-11-4 09:30
你好,我懂你的意思,我没打断点,调试模式进入后,直接全速运行,这个时候,串口助手就打不开了。。
你 ...


我用F4,基本完全用官方库,也是下载后不插拔USB线、全速运行,好像没有问题。

是否你对上拉电阻的控制有问题?
或者上位机驱动有问题?

如果网友的程序可用,你可以把自己的程序移植过去。

xiaomowx321
4楼-- · 2019-07-21 00:40
 精彩回答 2  元偷偷看……
xuande
5楼-- · 2019-07-21 03:52
xiaomowx321 发表于 2016-11-4 10:58
我用的是FSD里面的virutual com port例程,不是CDC类和HID类什么的哦,
驱动嘛,下载的官方vcp驱动,
...


是。

等等,FSD是怎么回事?

xiaomowx321
6楼-- · 2019-07-21 04:40
xuande 发表于 2016-11-4 11:15
是。

等等,FSD是怎么回事?

QQ截图20161104111954.png
是这个里面的virtual com port例程基础上改的

一周热门 更多>