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

【经验分享】STM32 如何通过 USB 烧录程序

[复制链接]
STMCU小助手 发布时间:2022-6-21 12:52
搭载STM32F103C8 核心的 STM32 开发板由于其 ARM Cortex M3 架构而越来越受欢迎,它具有较高的运行速度和更多的外设选项。此外,由于该板可以使用 Arduino IDE 轻松编程,因此它已成为许多爱好者和工程师快速原型设计的首选。, r4 l  ]* f6 n1 b: x5 N

) ]- `6 d' k' Y1 F9 D8 e在前面的文章中,我们介绍了使用“Arduino IDE + FTDI ”对STM32F103C8 开发板进行了编程使板载 LED 闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和 1 之间来回切换,有点麻烦。开发板上的 mini-USB 端口也完全未使用。而我们把USB插上电脑时,是识别不到该板的,因为它没有 Arduino bootloader。接下来我们就把Arduino bootloader烧写进STM32F103C8 ,实现USB烧录程序。目前尚不知道这种方式会不会出现不可预知的bug,不建议用于关键应用程序。
* p7 u, i- t* L' D' X" A# d- I9 ~& M* B
所需材料
* S) H8 v6 t: \, y§ STM32 开发板 ( STM32F103C8 ); W+ z1 e/ Y+ Z1 _
# I' c$ ]/ |# n5 L6 s; _
§ FTDI 模块
) {) p" z: ]9 T( u% o1 G/ x& }# J" H$ t! F; }: Q
§ 面包板
( M5 p$ t5 r( B3 y( W, d5 e& S% R( b- ^. d5 g/ A' T
§ 连接线
; z, b$ a* @0 ?: Y+ G8 @' O2 s) `  c2 S8 q- L
§ 一台联网的电脑9 d# B) e1 G9 |2 P6 a2 e$ k
: i% m7 }. l9 B
连接电路图' c6 a3 g- Z9 Z" i
要直接通过 USB 端口对 STM32 进行烧录, 我们需要先将引导加载程序刷入 MCU。为此,我们需要使用FTDI 板(也可以使用CH340这类模块)。该板连接到 STM32 的 Rx 和 Tx 引脚,如下所示。, D5 ~& |9 r0 \6 b
/ j$ M" ~8 Z) S3 q) N1 j( \
0c223ba1f2e5439775030d8616a5b982.png ' x6 X9 t( Y/ n" _
# M2 z, M$ r9 x  {  }+ \4 O2 d
FTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中 A9 是 STM32 MCU 的 Tx 引脚,A10 是 Rx 引脚。2 k7 {" J. ~  ?

8 v  e" D6 E" G+ G5 {; W 036a6c17e2101b0e545d6ff2f5d9aa45.png
; w2 W0 O+ K6 Q+ T/ q9 Y  r* T* X5 V! a! |, ^( O+ f
在上传引导加载程序时,确保板上的引导 0 跳线针设置为 1。上传(烧录)完成,该引脚更改回初始位置。
+ c- r1 M/ M9 j, A' ~! P0 x. D0 ]* q, E- l. T$ n8 u
3361226955e86e2eead7900a8237d0b6.png # p; g; {8 t: m+ Z' t7 Y/ F  O

& M$ v3 y0 Z' S, E将Bootloader 上传到 STM32 开发板
6 `* o) r( {1 [$ C& T# O( f$ G完成上述连接后,将 FTDI 板连接到您的计算机,然后按照步骤将BootLoader 刷入 STM32。$ }+ L) D2 B7 R& n( p' L

# F0 Q" a1 I  A  P! u/ B3 v第 1 步:准备好BootLoader 文件。3 M! k2 m! j- e/ w( ^1 R' Q

: L& o+ A7 K" Y7 \# b第2步: 接下来下载并安装STM Flash loader软件,将下BootLoader 文件刷入STM32。6 `  Y- \" b3 J$ P$ R% c9 A3 M" J

& O+ a& `$ N; _# G" O进入ST网站,滚动到底部点击Get latest% s' ~/ m' r1 E4 \/ A* M; p
0 ^! v- {9 z" V0 C. _0 P9 E
3045928d914d231c76a222b05ed7c58d.png
6 f1 A; y2 Z$ |0 S$ Q
8 X& v4 Z* v2 f. O" E% `  a! Y& k5 T% M% a/ Q
第 3 步:下载前需要填写相关信息,主要是输入邮箱要正确,其他信息不重要,下载地址会发送到邮箱,从邮箱点击下载。- R2 {" A. Q8 ]1 T1 y0 i+ c3 m3 }7 n! ~

8 Y# V+ u6 a$ [: L5 J7 [* n$ a' u第 4 步:下载安装软件后,确保STM32 板Boot 0跳线置于1位置,并已通过 FTDI 板连接到计算机,然后启动软件。软件会自动检测 COM 端口,但还是建议查看硬件管理以确保您选择了正确的 COM 口号。
5 N6 ]: z) G! i/ n! Y3 P' z
5 q9 k6 L; h3 Y9 Y0 K) W 8cf5db15a10e02b399f7b0d19b6ffd58.png & ^1 C- U7 f( S  w

; y6 @0 S6 _# g- ~; C第 5 步: 点击Next按钮两次,软件会再次自动检测板子详细信息并显示如下图。我们使用的板子是 STM32F1,带有 128K 闪存。& C9 x: ?5 Q- H8 i3 `6 f5 i
6 B$ N  U& o( \9 m
8d4b937822f0817a2dceba856c30d063.png
3 _8 w; ]1 B% ?1 r' V
0 ?8 L0 k- ^% K( o第 6 步: 在Next中,选择“Download to device”,浏览到我们在第 1 步中准备 BootLoader 文件的位置并选择它。点击Next。5 T6 K- E7 [4 O' j! I) W
7 G5 ]* D3 X6 g/ k4 D5 ^/ C( d
第7步: 等待烧写完成。
6 Z, r+ P; X, W9 }! ~- J8 B2 B4 H0 l1 v
ad6ef0db242b5d24907152f776213f20.jpg
3 p# j  Q% r' j, d$ P! U  h4 y2 J' V, z8 b. ~2 ~
第 8 步: 烧写成功后,我们将看到以下屏幕。单击关闭并退出应用程序。接着我们准备 Arduino IDE 并安装驱动程序,然后才能使用USB烧录 STM32 板。
7 E  N, C& _  A, x" f6 I5 Q
% x/ q' X4 b5 N5 Z4 m, f% B d71c3f048026ac60e4e5411830558fec.jpg : f% c7 J3 H* U  B
: z8 `- ?& z9 j
准备 Arduino IDE 并安装驱动程序
+ ~8 m9 {8 t, |, [" a6 E2 z4 X4 B按照以下步骤下载并准备与 STM 32 开发板一起使用的 Arduino IDE。
: s7 f/ J9 T) u5 `( ?+ z* r: @- d3 X7 Q; u
第 1 步: - 安装步骤(略)
& h: g6 x+ U9 E4 Q4 C6 [7 }* D) W4 v2 N$ c; f' p
第 2 步: - 安装 Arduino IDE 后,下载安装 STM32 开发板所需的包参考之前的文章
* f3 j# q5 x9 Z+ X/ D+ ]$ g2 q5 z4 F0 `! K" u% y+ \  U
通过下面的网址安装STM32的开发库) ?$ g! @+ Z/ _- S$ W3 Q9 f+ g+ ]
4 A( A. E7 z+ @" e0 R9 R
第 3 步: 安装驱动文件(找不到网址了)8 p, l$ N9 o  r! P

0 i% M, h$ h8 A) J$ Minstall_drivers.bat 和 install_STM_COM_drivers.bat。6 k' H  N, l- A9 g( z* s0 F
& v& z2 F  ?8 o/ H8 Y4 {% P0 @
第 4 步: 单击两个 bat 文件并安装驱动程序。您将看到如下所示的 DOS 屏幕。( {! R5 v5 Z, |+ h( m
! p& x$ n7 |+ H( e- O
61afbca918982b5d54a8c311bada51a1.png
$ _8 a) M, V9 h  H0 _
8 s  n4 z! i% {2 q' z 03b2016294cf188b417ed56fd13dbdd2.png
/ ~6 W  r9 Z/ e, U
1 v6 x! ?6 ~9 P+ U现在 Arduino IDE 已准备好对 STM32开发板进行编程,并且驱动程序也已安装。
  K# D; @/ O4 f, b7 Q
& H+ E& {! r3 v/ s. t9 K通过 USB 端口直接烧录STM32) m( s! a8 F) G: J4 B# W
从开发板上移除 FTDI 板及其他连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下图所示。确保 跳线 0 引脚定位回 0 。此后,我们不再需要切换跳线来烧录和运行程序。
. B; q* t7 M. ^! v% g# {
" o9 @! @) q) _5 X; ?- v) V 5aba8a8d626c61850924b07c4d56de13.png
( L2 {& P+ Q0 W8 ?
6 a6 D9 Q# Y* w$ @/ M把开发板用USB线连上计算机,现在计算机应该能够发现开发板了。如果您看到正在安装任何其他驱动程序,请稍等片刻。然后进入 “设备管理器” 并检查是否发现了您的 STM32 板,如下所示。我的连接到 COM6,名称为 Maple。6 H! e7 t* \; U5 n0 R$ {
$ S3 X) q* |" [% t$ ?# m
0d7dbe78d4ab6b9e8c955b2f9eb95e8a.png 4 P0 ]  f9 b$ r, G4 A

; o" [2 I& q+ g" I打开Arduino IDE转到 “工具” 并向下滚动以找到通用 STM32F103C 系列,如下所示。然后确保变体为 64k Flash 类型,CPU 速度为 72MHz ,并将“Upload method”更改为 STM32duino Bootloader。还要根据“设备管理器”选择正确的 COM 端口。( o/ S8 ~' N! }+ m$ ?& ^
% O* R+ c9 Y8 `. o8 }, R0 t
3783dc3f903b82b65eaf1e68a1e93add.jpg
# R0 K$ b" ^9 _
. Z5 |. v1 @1 h+ O4 \完成所有更改后,检查 Arduino IDE 的右下角,您应该看到配置信息。我的 STM32 板连接到 COM6,但你的可能不同。! X' Q# R. R5 G! N
  }. I6 K# _) q2 U
ab960563c0e85b84d2a54507e4b23629.png
4 e9 i$ p+ Z/ `
' ~" N% ?$ F, Q- _  b+ y8 V现在 Arduino IDE 已准备好对 STM32F103C8 开发板进行编程。让我们将示例闪烁程序从 Arduino IDE 上传到 STM32F103C8 板,测试是否正常。示例程序可以通过如下步骤找到2 U5 g# T  P9 m" Z% z% e8 b
& {  B) z; {* O- }2 n) K
f7c327acf0061d2d78f9eb686197ac80.png
& J. E& h# q! ]1 A. c* p: P- H5 `6 W1 ^( @/ X" Q9 @5 e; M
在打开的示例程序中, 我们必须做一点小改动。默认情况下,该示例是为 PB1 编写程序,但在我们的板载 LED 连接到 PC13 ,因此将所有 PB1 替换为 PC13 。修改后的 完整示例程序 如下。4 \  v) C* ]- {: c* s5 w& F8 ~
6 T& d' I  r- N) t
94f65e6d61adf8f6b8da77c823d553c7.png ( @; z- D) h/ h6 ~0 h

% p( D# f, I1 `0 x% E6 I- r按下 Arduino IDE 上的“上传”按钮,您的程序应该被编译和上传。如果一切顺利,那么你应该在 Arduino IDE 控制台上看到以下内容。! F" [% @  X' e# l' B  \, Q! n
3 a: K0 n4 T" {8 }* f" z* W; |
6005b39328ff9c53b441608fd2bb70d4.png
/ S  _' s1 o. D) f" ~1 V
3 I3 i( q0 p! T, ]4 s% i接下来,您应该会看到蓝色 LED 以 1 秒的间隔闪烁,您还可以修改延时时间以增加或减少延迟,检验是否上传(烧录)成功。现在您可以像使用任何其他 Arduino 板一样开始使用 STM32F103C8开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。5 i$ M- p: g7 V1 j( e3 ]
) {# l+ v0 e& n& c

3 m$ |4 h- K9 m' O$ o/ s0 O
收藏 1 评论0 发布时间:2022-6-21 12:52

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版