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

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

[复制链接]
slotg 发布时间:2017-7-1 17:20
本帖最后由 slotg 于 2017-7-1 17:22 编辑
! `  q3 p5 E3 _6 `: I, d$ }2 |5 I$ d3 j
/ S& \0 O% @0 N/ v在 YouTube 上看到了一个视频,使用 STM32CubeMX 在不到 10 分钟的时间就为一片 STM32F103C8T6 最小系统板实现了一个 USB 转串口的功能,让板子接收电脑端的字元控制板上 LED 的亮灭,我依视频的内容自己做了一遍:9 X1 O% n0 s' I1 X/ n: x

+ X! p, B# x& E3 ^6 ]; Z2 B3 w# g* u打开 CubeMX 后芯片选择 STM32F103C8T6! e7 _5 `& M; @1 E+ x+ V
P01.jpg 1 f7 m7 y, E0 F

* ]4 P9 T4 e3 TRCC 选择晶振的方式/ ~# [/ U; P0 Y5 b$ s; G/ M: l% r
P02.jpg
6 m8 `! }" |4 ]+ r+ b3 e9 x1 I( L8 @2 L; H3 W" j1 `
SYS 里头的 Debug 选择 Serial Wire 方式,这个选项让芯片具备了 SWD 功能。
9 k! _9 n+ `3 Y1 A P03.jpg
' i2 b4 j# n& A- K. h& g: i0 ^+ B6 t8 h2 T+ E' Z
USB 点选 Device(FS),这个是开启 USB 功能。
7 X( [% S. q, \) ~% }8 Q P04.jpg
, Y% T' w1 p* O. j6 Y
# C5 |5 q- m6 l9 c4 o, y" ~USB DEVICE 里头选择 CDC 类。
8 |" z- ]0 a- B P05.jpg
) p% Y5 m% D, x6 O0 j; `6 S! M1 G; i* b- c1 C2 [. K! M7 I" F+ L
最小系统板上 MCU 的 PC13 连接了一颗 LED,因此设定 PC13 为 GPIO_Output 模式。+ Z. s% _2 W4 e' h. W. T6 g2 k
P06.jpg
) v: d  h& _1 ^1 _* V. l7 v' z/ E. Z8 e
切换到时钟设定页面时会出现一个窗口,询问是否要让 CubeMX 自动配置时钟?我们选择 Yes。+ m% x* t; H/ F3 n5 l
P07.jpg ) x; w, O7 t5 _3 x% R: h1 [
3 ~9 K/ F; u! a( r. y4 w& l
配置结果如下:4 `2 E# X; {  B: u
P08.jpg
; x- i. S9 n. Z; U+ D8 Z7 b
2 _* P$ A$ T% y# ~4 i管脚设定,设定 PC13 上电位准是 High。(输出 Low 时点亮 LED)5 b: J/ g+ Y9 C- R. N* o" x
P09.jpg
8 y9 _1 F! u! {4 u; ~. B* q$ `
8 l& c; o; a8 `% J: ~所有设定完成后接下来产生程序码
3 W5 L# z0 J$ f6 P6 D1 R P10.jpg 7 C$ q' r/ s4 W0 g# V

8 X' q! ~* n' f5 m; X5 P输入工程名称为 CDCtest1,IDE 工具选择 MDK-ARM V5。
; H4 X2 k* W  A, N2 F$ G% P1 M P11.jpg
- l, t' Y/ w. Z" o- W2 e2 I. G" g: ]* V- N& G" q; W
程序码生成后询问是否要打开工程 ?我们选择打开。3 J8 J0 p/ u0 ?- Q: b$ o; E( u
P12.jpg
) p- n1 h: o0 i2 u. ^/ B, R
$ H7 M) Y5 u" e0 I( I6 Q打开后的工程
  x' m$ T( c1 l8 r+ b P13.jpg
  V& J) [9 f' G2 z7 U0 H+ `" i: v  J0 d; i' C
直接编译工程并不会出现任何的错误/ H5 c' h( j% B% X  s1 Z' ]6 d
P14.jpg / A% y% s+ ~  e  [

0 h$ w5 R, _1 q& s, h9 N打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数, J6 H$ R  `* W4 ?
P15.jpg
$ R- h$ K' f# z' V. \! G6 W" t
% ]" h$ F8 C3 a, W1 V8 f加上这些代码,代码的功能为依所接收到的字元控制 LED 亮灭。3 [0 Y' g. ~0 y3 ?, p
P16.jpg : V% o2 u, B5 `8 o; v

, C9 a, A" ?8 v编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口
& h; ?3 Q, R1 a) s: M9 g6 A6 \0 G2 q P17.jpg 7 v3 z% n2 i: S- ~/ ?
! X1 ?" u3 G7 b1 u2 F
打开串口调试程序,选择好端口后发送字元 1 可以看到板上的 LED 亮起,串口调试程序收到 LED ON 信息,发送字元 0 可以看到板上 LED 熄灭,串口调试程序收到 LED OFF 信息。
5 Y( l6 }" N. B  _ DSC02404.JPG + b7 H7 x1 a5 z2 s, r$ z% [
P18.JPG
: K) H7 S4 `+ ^( Q: u
4 t# r3 q4 e2 ?. e% d$ z& t1 }! @- y
工程文件9 J5 {& |3 Z! U$ g5 f5 s
CDCtest1.rar (8.53 MB, 下载次数: 2238)

评分

参与人数 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( ?- Q6 O+ G: g* |* }
我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了 ...

2 l; A! U  K. W- Z我找到了一个多串口VCP的例程,是USB OTG的,要用105来用,103是USB的不适合。
0 F" W8 B9 L. g5 }. A- n8 `2 N但是我用CubeMx生成105VC的USB VCP工程,无法识别出来COM,你能不能试一下?试枚举一个节点的COM就可以了,我不知道是不是哪里配置不对。
John-2049691 回答时间:2019-12-30 12:02:46
slotg 发表于 2019-12-30 11:14' a4 P2 }/ {$ h3 y- `
还没试过,可以讨论讨论

0 I; v9 D1 e3 y/ _, G我看了下CubeMx,但只发现能改动Max Num,重新生成代码后,发现然而没有增加或改动到其他代码,只是改了个USB接口数量最大值,设备管理器也没有新增串口。
slotg 回答时间:2017-7-3 10:37:29
xiaoxiao0932 发表于 2017-7-3 09:09" y7 h3 b  i* v6 Q/ _4 @4 D
请问楼主,稳定性怎么样啊,在多次通信后是否出现异常,是否需要插拔USB线? ...
, Q' y  e/ Q, ]" y- z) y; ]7 j
稳定性还没试过,我找时间写个测试程序试看看了,你有碰过不稳定的情况吗?
Paderboy 回答时间:2017-7-1 17:33:34
多谢分享。。。。
slotg 回答时间:2017-7-1 17:40:40
Paderboy 发表于 2017-7-1 17:33$ K8 D' x4 Q6 [" d
多谢分享。。。。

1 R$ l6 T- [5 c, U  a( Q感谢关注
feiante 回答时间:2017-7-1 17:49:47
是这样的,用stm32cubeMX可以很快建立usb虚拟串口
hpdell 回答时间:2017-7-1 20:09:15
牛逼啊: c9 {! |+ V% }8 x: {0 w

8 c& V4 @6 G8 f: W. R7 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
谢谢分享
123下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版