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

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

[复制链接]
slotg 发布时间:2017-7-1 17:20
本帖最后由 slotg 于 2017-7-1 17:22 编辑
2 \/ T; p: G6 x+ ~, ^% N+ V* P4 ^9 b
在 YouTube 上看到了一个视频,使用 STM32CubeMX 在不到 10 分钟的时间就为一片 STM32F103C8T6 最小系统板实现了一个 USB 转串口的功能,让板子接收电脑端的字元控制板上 LED 的亮灭,我依视频的内容自己做了一遍:
9 Q( F" Q' {# _% c; N& ]
! t7 R& ~( N. b8 v0 U打开 CubeMX 后芯片选择 STM32F103C8T63 H" E2 ]  g3 p  h3 F# s% S9 P  D3 M  m
P01.jpg $ L& v) K+ [, H9 Z2 q( h

+ _; W/ v, U0 b: z3 e: |0 ZRCC 选择晶振的方式2 v- q+ k0 D  f6 P' ^4 y5 B$ a& }
P02.jpg
% r  @7 S- K% M6 x. @- ^/ n: ]7 M
, E( b& R+ j( H+ {SYS 里头的 Debug 选择 Serial Wire 方式,这个选项让芯片具备了 SWD 功能。+ F: A# p4 B2 D1 U
P03.jpg
7 F/ h3 s0 n) r6 p3 N" Z# i; j! y" ~3 U+ n
USB 点选 Device(FS),这个是开启 USB 功能。1 U# C0 M6 T: b8 g
P04.jpg 5 O& n9 v6 S2 ^: X3 I/ y
% u  j; e6 B' ~
USB DEVICE 里头选择 CDC 类。7 d" ^' J/ N4 d' ^; w
P05.jpg
3 a% B% H) r( T' X0 y0 x/ o3 G& }: k- ?# n9 f9 h
最小系统板上 MCU 的 PC13 连接了一颗 LED,因此设定 PC13 为 GPIO_Output 模式。4 ]9 r" I8 M9 I9 q  n4 b
P06.jpg , J& m; m2 A; @1 B1 f% H

- C* c% @+ O# Z1 Z+ A* @7 Q切换到时钟设定页面时会出现一个窗口,询问是否要让 CubeMX 自动配置时钟?我们选择 Yes。4 Y4 \' R1 K6 Z% Y) z
P07.jpg " S* ~+ r) o  V4 R% f) ~- q
  Y( G7 y+ |  y0 U1 a1 H
配置结果如下:
9 H% j0 ^% F+ n: x P08.jpg
8 I9 V. `0 v& n2 K3 i! j  C
6 G: V4 n, L0 ^8 u" l管脚设定,设定 PC13 上电位准是 High。(输出 Low 时点亮 LED)
7 i" g+ q8 a' P( m$ t2 s P09.jpg 3 T8 Z7 k; @  l8 a

5 q5 k6 j7 p/ q9 S  g2 b" e+ k& l所有设定完成后接下来产生程序码3 I0 J) V* d; I; j
P10.jpg
1 w- b7 u7 B" \( N3 ]/ c4 Z( q. J0 [! @2 G, j+ e
输入工程名称为 CDCtest1,IDE 工具选择 MDK-ARM V5。5 s; q+ i; y2 a8 i7 d5 ?
P11.jpg 0 k! a8 I( a! b' c8 z4 L- x% {0 \

  h4 j, u. P% m5 J程序码生成后询问是否要打开工程 ?我们选择打开。
5 a9 F) L- l- @+ ^$ L( u. [ P12.jpg
  [& n& h4 N" I; [" R
4 J; G8 {$ {( R; |' F* L/ l, t4 p' a打开后的工程2 T& T% ]9 W% w% v  u
P13.jpg : y. q- y1 J, ~; X3 X

4 ]4 \* d. j$ p" z( r5 E直接编译工程并不会出现任何的错误
* J+ g1 N5 F6 O' z' ]' A4 R P14.jpg 6 A: @2 k/ e0 I  ]0 G0 o. ^

9 K4 ]5 d" T7 _打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数
2 S" D3 |$ m$ j P15.jpg ; }1 }0 Z" p1 u) T7 W0 g: m

3 _+ S7 U3 l; M加上这些代码,代码的功能为依所接收到的字元控制 LED 亮灭。
0 z+ ]& P& G) _4 c P16.jpg 4 Z3 X$ C$ [5 _6 X

% W1 r' C$ U8 u& ]1 w, U9 {编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口
  Z9 J. f6 V* Q9 k P17.jpg
: {/ T/ j5 b1 a  p' Q! k  g; S/ V# K  p9 t
打开串口调试程序,选择好端口后发送字元 1 可以看到板上的 LED 亮起,串口调试程序收到 LED ON 信息,发送字元 0 可以看到板上 LED 熄灭,串口调试程序收到 LED OFF 信息。
$ t% Q  j/ u. T' E. C DSC02404.JPG 6 @, ~  C. u1 o/ z1 H
P18.JPG 3 [1 Q; J6 I' G( o5 ~3 E
2 |$ _2 \/ m6 `7 h0 _3 |7 W
' {) j- {3 g% P0 X/ {: I
工程文件
7 {6 L" W. K: C# O0 x! d, h 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:027 N+ ?" e" M! K0 l$ z- {% x: ?( ~
我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了 ...
  Z! Q4 {/ ]. T
我找到了一个多串口VCP的例程,是USB OTG的,要用105来用,103是USB的不适合。" \5 T& o" e# X/ g6 i& R. |
但是我用CubeMx生成105VC的USB VCP工程,无法识别出来COM,你能不能试一下?试枚举一个节点的COM就可以了,我不知道是不是哪里配置不对。
John-2049691 回答时间:2019-12-30 12:02:46
slotg 发表于 2019-12-30 11:141 m" W' `, f9 x9 _5 D
还没试过,可以讨论讨论
0 c- H; R8 p  J6 t$ h# h
我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了个USB接口数量最大值,设备管理器也没有新增串口。
slotg 回答时间:2017-7-3 10:37:29
xiaoxiao0932 发表于 2017-7-3 09:098 }% Z, J* W4 m; g- ~; c
请问楼主,稳定性怎么样啊,在多次通信后是否出现异常,是否需要插拔USB线? ...
5 v4 y: C# E9 j- Q+ o+ }4 y5 i
稳定性还没试过,我找时间写个测试程序试看看了,你有碰过不稳定的情况吗?
Paderboy 回答时间:2017-7-1 17:33:34
多谢分享。。。。
slotg 回答时间:2017-7-1 17:40:40
Paderboy 发表于 2017-7-1 17:33( m, w+ }0 C8 N$ b. p0 D8 i/ Z- L
多谢分享。。。。

+ l* X0 y8 k% t8 D1 `感谢关注
feiante 回答时间:2017-7-1 17:49:47
是这样的,用stm32cubeMX可以很快建立usb虚拟串口
hpdell 回答时间:2017-7-1 20:09:15
牛逼啊
; `7 T" H; u/ z/ g7 D1 o1 N$ g8 P" u
以后使用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 手机版