OpenEdv-开源电子网

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

分享一些自己搜集的USB虚拟串口的资料

[复制链接]

26

主题

280

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2013-8-2
在线时间
279 小时
发表于 2013-9-26 22:44:08 | 显示全部楼层 |阅读模式
 下面几条是我在学习过程中记录下来的问题的解决办法,或者是小知识点,有不对的地方恳请大牛纠正:

安装USB虚拟COM口驱动时出现“INF中的服务段落无效”,解决方法如下:fficeffice" />

1)下载mdmcpq.infusbser.sys

2)将mdmcpq.inf复制到c:\windows\inf

3)将usbser.sys复制到c:\windows\system32\drivers

小技巧:比如要打开c:\windows\inf,只要在地址栏(IE输入网址的地址栏和我的电脑里的地址栏都一样),输入c:\windows\inf即可打开。

STM32USB模块可以产生三种中断:USB唤醒中断、USB高优先级中断和USB低优先级中断,在STM32的参考手册中没有详细说明这三种中断对应哪些事件,现说明如下:
1
USB唤醒中断:在中断向量表中的位置是42。这个中断在USB设备从暂停模式唤醒时产生,唤醒事件由USB_ISTR寄存器的WKUP位标识。

2
USB高优先级中断:在中断向量表中的位置是19。这个中断仅由USB同步(Isochronous)模式传输或双缓冲块(Bulk)传输模式下的正确传输事件产生,正确传输事件由USB_ISTR寄存器的CTR位标识。

3
USB低优先级中断:在中断向量表中的位置是20。这个中断由所有其它的USB事件产生,例如正确传输(不包括同步模式和双缓冲块模式)USB复位等,事件标志位在USB_ISTR寄存器中。

STM32USB开发包的例子中包含了上述中断的处理,例如在USB扬声器的例子中,CTR_HP函数处理USB高优先级中断;在所有例子中都有USB_Istr()函数处理USB低优先级中断。


USB如何区分低速、全速和高速设备:对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。

USB枚举过程:

(1)       USB主机检测到USB设备插入后,对设备复位。

(2)       USB主机对设备发送获取设备描述符的标准请求。

(3)       设备收到该请求后,在数据过程将设备描述符返回给主机。

(4)       主机在成功获取到一个数据包的设备描述符后并且确认无错误后,返回一个0长度的状态数据包给设备。

(5)       主机再对设备复位一下,接下来进入到设置地址阶段。

(6)       USB主机发出一个设置地址的请求,地址包含在建立包中。

(7)       USB设备在收到地址后,返回0长度的状态包。

(8)       主机收到0长度的状态包之后,返回一个ACK

(9)       设备在收到这个ACK之后,就可以启用新的地址了。

USB一直进中断的原因:主机每1ms就给设备发送一个sof3ms没反应主机就挂起。所以一直进中断属于正常现象。

USB虚拟串口使用时应注意:

(1)       用于上拉的控制位使能时,主机能检测到USB设备。

(2)       设备插入时,地址为0,后由主机分配地址。

(3)       枚举结束前(即设备被识别前),不能中断程序,否则设备不能被识别。

(4)       设备发送usb_SendDataToHost("\r\n$ERRCMD#\r\n", 10)注意数据长度为10,而不为16.(不知道是不是“\$#这样的符号不算,求大神赐教”)

主机发送“WHO’S DEMO”这类有空格的字符串时,空格会被省略,在设备里计算长度时应为9,而不为10.

Ex023-USB虚拟串口通信例程(V2.0_2011-10-16).rar

551.38 KB, 下载次数: 6165

mdmcpq.inf_usbser.sys.rar

50.51 KB, 下载次数: 3474

基于STM32的USB程序开发笔记.pdf

2.39 MB, 下载次数: 9244

圈圈教你玩USB.pdf

15.17 MB, 下载次数: 24983

STM32虚拟串口PC机驱动(配合USB虚拟串口例程使用).rar

11.25 MB, 下载次数: 27157

博客:http://blog.csdn.net/feilusia
CC2541群(127442605);CC2640群(557278427);
Android群(541462902);STM8/STM32群(164311667);
Linux群(512598061);职场交流群(450154342);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-7-15
在线时间
0 小时
发表于 2015-7-15 21:36:15 | 显示全部楼层
请问楼主,我用你的例程在开发板上成功了,但是在一最小系统板上始终不成功怎么回事哦?
回复 支持 0 反对 1

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-9-26 22:46:39 | 显示全部楼层
cool
回复 支持 反对

使用道具 举报

6

主题

92

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2011-12-30
在线时间
2 小时
发表于 2013-9-27 18:44:18 | 显示全部楼层
好东西啊~~~必须顶
回复 支持 反对

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2013-4-2
在线时间
0 小时
发表于 2013-11-25 21:30:47 | 显示全部楼层
太感谢楼主了,。最近就在弄这个谢谢啊
回复 支持 反对

使用道具 举报

32

主题

300

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2012-3-30
在线时间
321 小时
发表于 2013-11-26 09:52:05 | 显示全部楼层
慢慢看
回复 支持 反对

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2013-4-2
在线时间
0 小时
发表于 2013-11-27 17:50:12 | 显示全部楼层
楼主在不???急问啊,下在了楼主的例程之后,在旗舰版的开发板上使用了,可以正常通信了,感谢楼主啊!!!!!
但是现在有个问题,我把程序移植到旗舰版的开发板综合实验中,就是一直走不通,插上电脑显示的是unknown device ,弄了好久一直没成功
求楼主解惑啊!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

26

主题

280

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2013-8-2
在线时间
279 小时
 楼主| 发表于 2013-11-28 08:45:57 | 显示全部楼层
回复【6楼】crj19880917:
---------------------------------
1)重启、换个USB接口。
2)枚举结束前(即设备被识别前),不能中断程序,否则设备不能被识别。
3)将外设一个一个注释掉,看看被什么外设影响了。
博客:http://blog.csdn.net/feilusia
CC2541群(127442605);CC2640群(557278427);
Android群(541462902);STM8/STM32群(164311667);
Linux群(512598061);职场交流群(450154342);
回复 支持 反对

使用道具 举报

5

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-8-10
在线时间
0 小时
发表于 2014-2-22 00:16:43 | 显示全部楼层
3q
回复 支持 反对

使用道具 举报

21

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-12-1
在线时间
88 小时
发表于 2014-5-21 15:35:39 | 显示全部楼层
请问,我试过所有的办法就是不能虚拟串口,怎么回事啊?我换了所有的USB口都不行,我用的是WIN 7系统是否有问题?结果这样:

回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-7-3
在线时间
0 小时
发表于 2014-7-3 12:02:45 | 显示全部楼层
楼主,我下载了你的程序,也安装了驱动。电脑能正常检测到虚拟串口,但是当用串口调试工具给STM32发数据的时候没有任何反应,请问可能是哪里有问题?能给些提示吗?
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2014-1-6
在线时间
13 小时
发表于 2014-8-17 15:44:46 | 显示全部楼层
学习、、、、、、、、、、、、
最热情的问候 With My Warmest Regards
回复 支持 反对

使用道具 举报

33

主题

253

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-8-16
在线时间
0 小时
发表于 2014-9-15 19:09:58 | 显示全部楼层
强势顶起!!!
开源的世界,你可以做主!!
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-12-16
在线时间
2 小时
发表于 2014-12-18 09:19:00 | 显示全部楼层
资料真不错,总结的很详细呀!顶个
回复 支持 反对

使用道具 举报

21

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2013-6-12
在线时间
16 小时
发表于 2015-1-14 00:58:46 | 显示全部楼层
感谢分享!!!!!!
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2013-4-2
在线时间
0 小时
发表于 2015-1-19 15:29:13 | 显示全部楼层
这个之前也用了,但是不支持WIN7 WIN8
回复 支持 反对

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2015-3-11 11:21:55 | 显示全部楼层
学习学习!!!
回复 支持 反对

使用道具 举报

6

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
577
金钱
577
注册时间
2014-10-6
在线时间
38 小时
发表于 2015-4-1 22:24:54 | 显示全部楼层
资料不错,支持……不知道你遇到过这样的问题吗?开发板USB部分的D+和D-没有接上拉电阻可以吗?
比如这个原理图:

回复 支持 反对

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2015-4-1 23:46:40 | 显示全部楼层
回复【17楼】鹅卵石的天空:
---------------------------------

电阻已经集成在CPU内部了。
回复 支持 反对

使用道具 举报

6

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
577
金钱
577
注册时间
2014-10-6
在线时间
38 小时
发表于 2015-4-2 10:37:05 | 显示全部楼层
回复【18楼】xuande:
---------------------------------
我看原子哥的板子原理图中,D+和D-是接了电阻的啊。
回复 支持 反对

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2015-4-2 10:47:05 | 显示全部楼层
回复【19楼】鹅卵石的天空:
---------------------------------
内部电阻是可以用软件切断的。

回复 支持 反对

使用道具 举报

6

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
577
金钱
577
注册时间
2014-10-6
在线时间
38 小时
发表于 2015-4-2 13:07:01 | 显示全部楼层
回复【20楼】xuande:
---------------------------------
哦,多谢了。那外部 没有接电阻也行?既然内部有电阻了,外部的电阻可以不需要是吧?我可以这样理解吗
回复 支持 反对

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2015-4-2 14:21:04 | 显示全部楼层
回复【21楼】鹅卵石的天空:
---------------------------------

对。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-3-6
在线时间
0 小时
发表于 2015-4-15 19:05:55 | 显示全部楼层
太感谢了,正需要。
接上MINI板USB口,资源管理器显示VIRTUAL COM3,通了!^_^
回复 支持 反对

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
发表于 2015-5-9 14:08:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
回复【22楼】xuande:
---------------------------------
代码我已经在战舰上移植成功了,请问下,结合战舰中的usb_port_set()函数,为什么还是实现不了按复位键就能识别,必须断电重开才行?请大神帮忙指导下如何实现按复位键就能识别
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-5-9 22:52:25 | 显示全部楼层
回复【24楼】名侦探:
---------------------------------
这我也不知道。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-7-24
在线时间
0 小时
发表于 2015-9-11 14:04:30 | 显示全部楼层
楼主你好,新手,想请教一下,USB的EXTI 18 唤醒事件中断,是只能唤醒USB的功能,还是说可以用来唤醒休眠模式下的STM32?
回复 支持 反对

使用道具 举报

20

主题

120

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2015-6-4
在线时间
5 小时
发表于 2015-10-19 22:20:16 | 显示全部楼层
学习了,正好要用到
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2014-8-18
在线时间
5 小时
发表于 2016-4-15 15:12:40 | 显示全部楼层
好东西,多谢分享!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-7-14
在线时间
2 小时
发表于 2016-7-14 17:56:12 | 显示全部楼层
你好,你这个是F1系列的例程,对于f0系列的板子也同样适用吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-8-21
在线时间
1 小时
发表于 2018-8-21 09:28:44 | 显示全部楼层
请教楼主,就是我使用的STM32虚拟串口只在我的电脑上正常识别,换一台电脑就无法识别,请问大概是什么原因,谢谢
回复 支持 反对

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-11-12 10:16:00 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-9-27
在线时间
15 小时
发表于 2018-11-12 10:52:47 | 显示全部楼层
谢谢搂猪分享,楼主辛苦了

远程桌面连接软件

网站劫持检测
回复 支持 反对

使用道具 举报

15

主题

513

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3180
金钱
3180
注册时间
2016-1-14
在线时间
370 小时
发表于 2019-5-5 15:21:00 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2019-4-27
在线时间
19 小时
发表于 2019-5-11 14:29:27 | 显示全部楼层
学习一下先
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2019-9-23
在线时间
0 小时
发表于 2019-9-25 14:47:44 | 显示全部楼层
都是按说明操作的USB还是有!,不能用
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2021-5-17
在线时间
1 小时
发表于 2021-7-16 13:41:33 | 显示全部楼层
驱动版本太老了,现在都1.5版本了。官方有包可以下载。地址:https://www.st.com/en/development-tools/stsw-stm32102.html
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 23:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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