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

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

[复制链接]
slotg 发布时间:2017-7-1 17:20
本帖最后由 slotg 于 2017-7-1 17:22 编辑 5 S, u6 B* Q1 I, I! J9 Y: `2 Z

6 E( W' c2 ~5 c6 _& R9 N在 YouTube 上看到了一个视频,使用 STM32CubeMX 在不到 10 分钟的时间就为一片 STM32F103C8T6 最小系统板实现了一个 USB 转串口的功能,让板子接收电脑端的字元控制板上 LED 的亮灭,我依视频的内容自己做了一遍:/ Z3 q. g0 H) L& x' [
6 ^2 |" P! E2 C7 @- [; d
打开 CubeMX 后芯片选择 STM32F103C8T6- j$ J% M- |: P0 G. x6 x) P
P01.jpg
' j! S7 A) d: Q1 V$ Q
' E' K8 P2 g' M- R0 r8 Q) @2 MRCC 选择晶振的方式
- h( C2 t$ C) ` P02.jpg 9 T: ]* a4 A& _* _8 f7 d

% l  {! q, L' wSYS 里头的 Debug 选择 Serial Wire 方式,这个选项让芯片具备了 SWD 功能。* Y9 Y" k  I* |1 x3 T9 j3 U2 f
P03.jpg
  A3 Z! }5 i! ?; V( v5 Y4 U( {  ?0 C; v! i9 o/ u
USB 点选 Device(FS),这个是开启 USB 功能。* l3 V, x& m% Z
P04.jpg
; R2 ?: z6 v& u1 e9 w# ]
6 L% w! e% w" p' u8 g) rUSB DEVICE 里头选择 CDC 类。
! E  N6 h( O; K7 s P05.jpg
8 n$ X# B( H6 y
! o8 `7 L! b5 y4 Z0 f最小系统板上 MCU 的 PC13 连接了一颗 LED,因此设定 PC13 为 GPIO_Output 模式。
. C9 ~5 m- ^$ p P06.jpg 6 Z* j3 o/ l5 N/ z+ b! P
) E7 j# {. y$ [# V+ g# T2 B
切换到时钟设定页面时会出现一个窗口,询问是否要让 CubeMX 自动配置时钟?我们选择 Yes。
8 U+ K( X: M5 R2 p3 V  [4 M9 _ P07.jpg ) k! h, \& I  A% v/ s1 n+ E6 X
/ p( k2 ]6 L  l& u* p2 [% s
配置结果如下:
) v6 b# |2 c# ]& Q" [1 O9 q# B P08.jpg " w% f" a! G: |0 i

# S2 W( x8 t' U  `) R* f  M. ~2 s* c管脚设定,设定 PC13 上电位准是 High。(输出 Low 时点亮 LED)
+ c3 T/ C; t5 ~( N- F% ^ P09.jpg
. o% i# J- f6 Y! {$ D* g
8 b# L* h# _* L+ a' W- s/ [所有设定完成后接下来产生程序码
! m- ]* P8 N; Y/ U9 D! Y3 J P10.jpg - X; d. ~: y* b1 v( V

0 S- B* D7 T, m, F( k  H8 q输入工程名称为 CDCtest1,IDE 工具选择 MDK-ARM V5。
" f' ~- e7 w  }& ]0 g: ?+ j$ g P11.jpg
6 a# F1 A9 q; S' s8 P. m
  m9 ~, I8 O& j- f0 |) X# z程序码生成后询问是否要打开工程 ?我们选择打开。8 D9 e+ Z7 ]# a1 A4 q
P12.jpg 7 V. C$ L# U4 ]3 B- D

; q9 R5 |/ N' N  g6 m/ t: C打开后的工程  N$ m1 {4 H9 A0 s8 R
P13.jpg
% |1 f  E' L1 y2 B. `: U9 \1 V$ d
直接编译工程并不会出现任何的错误3 v. n" {; z4 g. b( C( V
P14.jpg
# k5 ?  o$ q7 Y4 y: A- I" A& e! U% I; a( R+ R
打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数5 J+ G) r6 I/ t
P15.jpg
. |% `9 q6 T1 J9 _) B& h( U
: n' u7 y9 i# c8 y) V加上这些代码,代码的功能为依所接收到的字元控制 LED 亮灭。
! A$ q8 T4 V% h, i9 c P16.jpg   I5 ]8 r) N# i6 D; H1 Z) k
: a% N0 w, x2 t
编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口( k8 S8 H6 _8 e1 h3 r
P17.jpg , y- ^& C3 {/ I, O- `: o

; C% P* M, J/ c5 @& {打开串口调试程序,选择好端口后发送字元 1 可以看到板上的 LED 亮起,串口调试程序收到 LED ON 信息,发送字元 0 可以看到板上 LED 熄灭,串口调试程序收到 LED OFF 信息。
6 t3 x: f- Q0 S* U" m: V DSC02404.JPG
$ F  X: l7 m1 E3 H) M# Z' p P18.JPG & K' z/ c3 [) E5 H5 j/ v
! x- l7 H, C8 J4 K: d6 H
( k$ s# o/ S+ ^3 \4 G5 s4 @
工程文件
& ^7 |0 G* \' a% p. R3 J 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; e* e# F0 J7 B9 H$ C, a; D
我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了 ...
0 Y  v  w' n% ^. o
我找到了一个多串口VCP的例程,是USB OTG的,要用105来用,103是USB的不适合。
4 }5 ~, @9 }/ l& H% B) H但是我用CubeMx生成105VC的USB VCP工程,无法识别出来COM,你能不能试一下?试枚举一个节点的COM就可以了,我不知道是不是哪里配置不对。
John-2049691 回答时间:2019-12-30 12:02:46
slotg 发表于 2019-12-30 11:14
" E" ?, Z( a7 C5 a+ e! z还没试过,可以讨论讨论
+ i. F' N5 d0 J* p
我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了个USB接口数量最大值,设备管理器也没有新增串口。
slotg 回答时间:2017-7-3 10:37:29
xiaoxiao0932 发表于 2017-7-3 09:09
  k8 _1 E, f/ Y- N7 q! n; n请问楼主,稳定性怎么样啊,在多次通信后是否出现异常,是否需要插拔USB线? ...
5 g& }9 |1 I' _
稳定性还没试过,我找时间写个测试程序试看看了,你有碰过不稳定的情况吗?
Paderboy 回答时间:2017-7-1 17:33:34
多谢分享。。。。
slotg 回答时间:2017-7-1 17:40:40
Paderboy 发表于 2017-7-1 17:33+ E8 }1 ^4 ^- }8 p
多谢分享。。。。

/ O7 w% v- Q  Z! l7 o# c: z" c感谢关注
feiante 回答时间:2017-7-1 17:49:47
是这样的,用stm32cubeMX可以很快建立usb虚拟串口
hpdell 回答时间:2017-7-1 20:09:15
牛逼啊
7 F+ _8 b: G$ U  g# t  G
1 k, R- A6 D' _* |以后使用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 手机版