你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

快速体验 STM32CubeF1 的 USB CDC 实现 VCP 功能  

[复制链接]
slotg 发布时间:2017-7-1 17:20
本帖最后由 slotg 于 2017-7-1 17:22 编辑 2 m; r0 t- E" w& f) }2 P; L

# t8 ^: z( Y5 p% Y' r( b! g' D在 YouTube 上看到了一个视频,使用 STM32CubeMX 在不到 10 分钟的时间就为一片 STM32F103C8T6 最小系统板实现了一个 USB 转串口的功能,让板子接收电脑端的字元控制板上 LED 的亮灭,我依视频的内容自己做了一遍:
, r* F2 P; I- O8 x  D' ~2 ^0 f5 ?- u; X; ?( q6 }, k9 }" G
打开 CubeMX 后芯片选择 STM32F103C8T60 x) Z0 J7 f: r8 U3 x, T
P01.jpg
4 m" w# x: p- p  ~; d
. j. F7 I- o: ~/ t* q4 t0 q- u9 XRCC 选择晶振的方式
0 k+ v" E; J: N6 x( k P02.jpg 6 C6 B2 D6 p# ]# \0 A( _

* Z4 B; {4 ]) m+ x! xSYS 里头的 Debug 选择 Serial Wire 方式,这个选项让芯片具备了 SWD 功能。2 B( b5 |% w2 j! s' V
P03.jpg ; c2 Y9 }, R  k; S' i
( m* q$ `3 {5 y; B) \) |
USB 点选 Device(FS),这个是开启 USB 功能。( Y& e8 Q, x3 h: V! F# B
P04.jpg , m( X: v/ M$ M/ M6 F/ C0 n

& C& P% Q4 R) u! n! xUSB DEVICE 里头选择 CDC 类。" w8 @- d, ?4 |1 J2 B$ o+ |
P05.jpg
8 d9 Z( E  O& N# I/ L. x$ J2 i7 o! D- ~3 R) N/ ]
最小系统板上 MCU 的 PC13 连接了一颗 LED,因此设定 PC13 为 GPIO_Output 模式。9 @; K/ H" Z0 ?4 V
P06.jpg + l# D" _# \" U+ Y( j8 l% |

- c7 y/ \4 w1 p/ l* @) J切换到时钟设定页面时会出现一个窗口,询问是否要让 CubeMX 自动配置时钟?我们选择 Yes。
0 y& r; B  O; V- ?6 z( m P07.jpg * v, e1 A' Z3 ^

5 Z. K! R: D9 `5 U6 f配置结果如下:2 ?. T; G; |: q+ n1 B' O4 p4 R* W
P08.jpg
* s5 D  e1 \$ s$ ~1 X8 M: d4 U: t  E, z$ h0 Z
管脚设定,设定 PC13 上电位准是 High。(输出 Low 时点亮 LED), v1 S6 K# W, f% j- l
P09.jpg
+ J! {* J& a6 @1 [( v* I# {# h/ W4 l6 P$ N/ a: W) v
所有设定完成后接下来产生程序码$ ?9 w3 P9 p4 c: {% Y
P10.jpg
, K9 P: o0 E2 Y, w( V, J+ r; z/ Z2 n6 S/ B3 c
输入工程名称为 CDCtest1,IDE 工具选择 MDK-ARM V5。; ?) [9 O) T0 i) M7 W% h- Y+ c7 B( L
P11.jpg 4 D+ k1 o$ P' B' U/ ?9 n

6 y% u; n3 c( U- U: g6 n程序码生成后询问是否要打开工程 ?我们选择打开。9 c' n& D8 b; e+ z. B! \5 x, R, \1 J
P12.jpg $ q% c! M- n. K* M7 h

8 J5 s4 r! \# f3 S5 y; M打开后的工程% A: ?8 I! V1 j( t8 W
P13.jpg ! x( y8 s; g2 `6 J* a

& j+ A- b3 b4 m" r, Y直接编译工程并不会出现任何的错误
7 P, s5 ^. C5 s P14.jpg # w* a  b1 Q  W. q8 m+ H
  g4 d2 K! {: N6 \3 u2 t
打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数+ A8 i3 y$ U& F; J3 ]6 E! |" h
P15.jpg
$ r# z$ a8 s' g: m" P8 q: K% I5 Z
加上这些代码,代码的功能为依所接收到的字元控制 LED 亮灭。
. f  k+ |  f4 N% g( }, k P16.jpg $ l3 E0 \5 Q' ^2 e% {% x$ S
/ D7 U1 X& V. ^6 K# R/ V
编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口
9 ^1 U9 }; x! N5 @ P17.jpg ( p4 T5 j: `$ Q+ |: E

& |# l7 s# H% [' G1 W' w打开串口调试程序,选择好端口后发送字元 1 可以看到板上的 LED 亮起,串口调试程序收到 LED ON 信息,发送字元 0 可以看到板上 LED 熄灭,串口调试程序收到 LED OFF 信息。
4 D0 u- v" h0 F- o! O9 d DSC02404.JPG 8 |# N7 @9 F# ^/ k- h4 [( ]
P18.JPG ! d/ u+ Z. N" P+ Q

0 E, [" C% z. L
3 \/ G. d8 l7 B工程文件
3 {0 A3 L  W/ A& I  ?" S CDCtest1.rar (8.53 MB, 下载次数: 2237)

评分

参与人数 1 ST金币 +5 收起 理由
zero99 + 5

查看全部评分

收藏 11 评论44 发布时间:2017-7-1 17:20

举报

44个回答
John-2049691 回答时间:2019-12-31 14:18:19
John-2049691 发表于 2019-12-30 12:02
9 r; H. H! }' _& y; c& \, D我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了 ...
! q8 U; q3 g4 C$ @# R( Z  _2 H
我找到了一个多串口VCP的例程,是USB OTG的,要用105来用,103是USB的不适合。
, R" }9 T* @1 ?! P; E( l  G; P1 b但是我用CubeMx生成105VC的USB VCP工程,无法识别出来COM,你能不能试一下?试枚举一个节点的COM就可以了,我不知道是不是哪里配置不对。
John-2049691 回答时间:2019-12-30 12:02:46
slotg 发表于 2019-12-30 11:14
6 `7 R0 n  m8 w还没试过,可以讨论讨论

/ W+ i% K. x" s% y' E8 m我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了个USB接口数量最大值,设备管理器也没有新增串口。
slotg 回答时间:2017-7-3 10:37:29
xiaoxiao0932 发表于 2017-7-3 09:09
. m) ?5 \3 ^$ a4 `1 i请问楼主,稳定性怎么样啊,在多次通信后是否出现异常,是否需要插拔USB线? ...

9 r. }, T' ?% ~4 J& X稳定性还没试过,我找时间写个测试程序试看看了,你有碰过不稳定的情况吗?
Paderboy 回答时间:2017-7-1 17:33:34
多谢分享。。。。
slotg 回答时间:2017-7-1 17:40:40
Paderboy 发表于 2017-7-1 17:33# I( s( J( [: e2 Z
多谢分享。。。。
- L2 `; j. j& v9 B& g
感谢关注
feiante 回答时间:2017-7-1 17:49:47
是这样的,用stm32cubeMX可以很快建立usb虚拟串口
hpdell 回答时间:2017-7-1 20:09:15
牛逼啊
1 g5 p- l2 }1 m5 e
& |* h1 r. ?1 t& H5 I$ Z以后使用stm单片机可以省去不少时间与精力啊
epochal 回答时间:2017-7-2 07:48:51
方便快捷,好!
Xinfeng 回答时间:2017-7-3 08:52:48
感谢分享
xiaoxiao0932 回答时间:2017-7-3 09:09:22
请问楼主,稳定性怎么样啊,在多次通信后是否出现异常,是否需要插拔USB线?
moyanming2013 回答时间:2017-7-3 11:30:42
支持            
adlu 回答时间:2017-7-4 10:47:39
Good!谢谢分享
埃斯提爱慕 回答时间:2017-7-4 18:58:32
提示: 作者被禁止或删除 内容自动屏蔽
anobodykey 回答时间:2017-7-13 16:52:30
感谢分享
洛千叶 回答时间:2017-7-14 09:15:52
谢谢分享!!!!!!!!!!!!!!!!
weiwei4 回答时间:2017-7-14 09:17:48
谢谢分享
1234下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版