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

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

[复制链接]
STMCU小助手 发布时间:2022-6-21 12:52
搭载STM32F103C8 核心的 STM32 开发板由于其 ARM Cortex M3 架构而越来越受欢迎,它具有较高的运行速度和更多的外设选项。此外,由于该板可以使用 Arduino IDE 轻松编程,因此它已成为许多爱好者和工程师快速原型设计的首选。5 f/ k3 n6 |0 w9 t
4 q2 U; v3 X9 v% t. L
在前面的文章中,我们介绍了使用“Arduino IDE + FTDI ”对STM32F103C8 开发板进行了编程使板载 LED 闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和 1 之间来回切换,有点麻烦。开发板上的 mini-USB 端口也完全未使用。而我们把USB插上电脑时,是识别不到该板的,因为它没有 Arduino bootloader。接下来我们就把Arduino bootloader烧写进STM32F103C8 ,实现USB烧录程序。目前尚不知道这种方式会不会出现不可预知的bug,不建议用于关键应用程序。
3 _/ Z: J& E( d$ Q. y5 f
- I& k9 w4 ]2 S* R6 d" x8 j所需材料9 t( a) _3 o3 ~. m) ~6 }
§ STM32 开发板 ( STM32F103C8 )2 q& ^& K) P- m+ i
9 D7 b8 W6 u, V- {3 b# }5 K& l5 B
§ FTDI 模块2 I1 f+ K. j' p! p0 u; Z' N

/ n5 i4 O9 o+ |§ 面包板
3 n- I( o/ B0 |6 Z7 r- a% M
. z! C" N5 A* m. |§ 连接线1 u, s, Q/ b! V5 j" J9 X

# ^7 u' q" n* I) I( X4 g7 A. E% j* z§ 一台联网的电脑
  |; D. ]9 Y2 ~  m
/ S; ?* e7 J" \) p0 D# j/ h3 s( T连接电路图3 C" ^. A+ e4 f7 ^& O
要直接通过 USB 端口对 STM32 进行烧录, 我们需要先将引导加载程序刷入 MCU。为此,我们需要使用FTDI 板(也可以使用CH340这类模块)。该板连接到 STM32 的 Rx 和 Tx 引脚,如下所示。
/ D' c9 U* J2 U8 A5 B, y8 n7 q+ T/ O/ i: G: h
0c223ba1f2e5439775030d8616a5b982.png
1 d; G6 y- O, s: }# L$ T
9 ]8 H3 ~% K! o" m7 VFTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中 A9 是 STM32 MCU 的 Tx 引脚,A10 是 Rx 引脚。5 ^# ]" |3 |* V9 P' ]$ z
7 p. J% I5 L3 x1 F( O* b
036a6c17e2101b0e545d6ff2f5d9aa45.png
8 _& [% v; V) Y- X4 T  m9 e% y. \5 V$ q6 n
在上传引导加载程序时,确保板上的引导 0 跳线针设置为 1。上传(烧录)完成,该引脚更改回初始位置。% h$ J: y1 _+ @6 t+ J0 H
' p5 I* g6 j9 o
3361226955e86e2eead7900a8237d0b6.png 2 [( E+ g" u- q+ m; ~
$ H! q* y7 y; e1 `
将Bootloader 上传到 STM32 开发板, g8 E: C2 E$ G' ?( P, t/ P
完成上述连接后,将 FTDI 板连接到您的计算机,然后按照步骤将BootLoader 刷入 STM32。' E6 o! x& O" ]$ X4 L

/ [, J& B  |  D2 n8 Z% y第 1 步:准备好BootLoader 文件。
9 k% i- y  D- F* Q2 m$ Z
9 s7 d% Y8 h5 ~7 v8 V: @第2步: 接下来下载并安装STM Flash loader软件,将下BootLoader 文件刷入STM32。( Q5 [4 T% N$ `7 T5 M4 p3 }
0 r0 ^8 J1 Z' r3 t4 D3 m6 U$ z+ k
进入ST网站,滚动到底部点击Get latest
9 Q" g  n% d9 W; m2 R" e5 S5 S! Q! [. x
3045928d914d231c76a222b05ed7c58d.png
# R* @: ?3 V+ J( @/ `4 B2 v: }  D7 R% M6 w2 q3 i

4 `4 q* M, T' c- R. ^8 K) Y! ^, K& u3 i* ~第 3 步:下载前需要填写相关信息,主要是输入邮箱要正确,其他信息不重要,下载地址会发送到邮箱,从邮箱点击下载。* K; B5 D/ G& b8 |  f& |  V

& o# ^: ]5 B2 D/ ]  \第 4 步:下载安装软件后,确保STM32 板Boot 0跳线置于1位置,并已通过 FTDI 板连接到计算机,然后启动软件。软件会自动检测 COM 端口,但还是建议查看硬件管理以确保您选择了正确的 COM 口号。
, n+ W2 p# _) b. W7 N# i5 C; j% z# V/ O& v+ x( f
8cf5db15a10e02b399f7b0d19b6ffd58.png
. A, A& {5 L! o( I* I& e' }5 L+ m  j' _: t& C
第 5 步: 点击Next按钮两次,软件会再次自动检测板子详细信息并显示如下图。我们使用的板子是 STM32F1,带有 128K 闪存。8 n! \1 q! q3 `6 K

& N0 v, T$ M( u" v  x 8d4b937822f0817a2dceba856c30d063.png 0 z- p, H- w  Y! _

2 k5 c1 v$ S9 R1 y3 y( W: m第 6 步: 在Next中,选择“Download to device”,浏览到我们在第 1 步中准备 BootLoader 文件的位置并选择它。点击Next。1 a; n0 a2 ]4 N' m, k

( w( j" z3 U0 r第7步: 等待烧写完成。. z( s* y: n* {% N' L8 z+ R
  @, w* b/ x9 ~$ u  `$ R
ad6ef0db242b5d24907152f776213f20.jpg
* H, ~2 M! y9 M: N2 L) K$ I% v
9 L, i- P" N& K& R! p! {9 c3 `第 8 步: 烧写成功后,我们将看到以下屏幕。单击关闭并退出应用程序。接着我们准备 Arduino IDE 并安装驱动程序,然后才能使用USB烧录 STM32 板。
2 @8 x" Y  j2 n& A3 W
" G5 \6 ?6 L7 C& H d71c3f048026ac60e4e5411830558fec.jpg
& D) T/ u4 [* Z. M  r% p9 g1 T
: v. y% x. h4 G9 U准备 Arduino IDE 并安装驱动程序+ g) v! U% \% P
按照以下步骤下载并准备与 STM 32 开发板一起使用的 Arduino IDE。
- Y6 t1 C' r' y0 F, Q  Y  a( T+ k9 A+ O4 I" [
第 1 步: - 安装步骤(略)* d+ ^% B7 V/ F) F: M9 T
3 {) L: F8 O1 {
第 2 步: - 安装 Arduino IDE 后,下载安装 STM32 开发板所需的包参考之前的文章! n$ A1 p5 z% w
, n. W; h) I$ m7 ?- }
通过下面的网址安装STM32的开发库
% \& [8 N# }% |1 G  Q
0 x( Y! {& S4 h- I2 r% W. O第 3 步: 安装驱动文件(找不到网址了)5 f5 G" l9 G8 a7 R. x$ ^/ t+ A

; k; Y9 B7 Y. h4 M+ i. j* }; Hinstall_drivers.bat 和 install_STM_COM_drivers.bat。
# O2 D' M4 W+ T6 a* }5 i; Y$ q: |. c6 v: b; f
第 4 步: 单击两个 bat 文件并安装驱动程序。您将看到如下所示的 DOS 屏幕。
' }5 H, h9 p% F* T6 N. C% i  x7 [
61afbca918982b5d54a8c311bada51a1.png ' ]0 a. I4 u  h/ X' [

! g" m& J9 a% R4 f) | 03b2016294cf188b417ed56fd13dbdd2.png
6 b1 b$ m% [  L5 z4 P  }
# F" A, Q* [' ^3 k: f5 L现在 Arduino IDE 已准备好对 STM32开发板进行编程,并且驱动程序也已安装。
" r) Z+ o' k6 {$ ~- ]& i' _# j# {8 l2 f1 ]* B; P8 b" o* j$ P; x
通过 USB 端口直接烧录STM32
8 E9 m3 ^) Y# Y从开发板上移除 FTDI 板及其他连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下图所示。确保 跳线 0 引脚定位回 0 。此后,我们不再需要切换跳线来烧录和运行程序。, A  q8 K; }2 v1 W

- G& o9 \: v9 G# |; |3 F 5aba8a8d626c61850924b07c4d56de13.png
+ [: m& Z' t  m% o, @; J; B+ f/ R5 K9 q2 s# z% \: @
把开发板用USB线连上计算机,现在计算机应该能够发现开发板了。如果您看到正在安装任何其他驱动程序,请稍等片刻。然后进入 “设备管理器” 并检查是否发现了您的 STM32 板,如下所示。我的连接到 COM6,名称为 Maple。) y5 b% O1 r7 m( t
: }' t" ]9 f* z! h
0d7dbe78d4ab6b9e8c955b2f9eb95e8a.png
  z: M0 H# ^$ Z4 ]' o9 F5 q& J
9 B8 m# B# h: @9 g! a4 q, D8 m打开Arduino IDE转到 “工具” 并向下滚动以找到通用 STM32F103C 系列,如下所示。然后确保变体为 64k Flash 类型,CPU 速度为 72MHz ,并将“Upload method”更改为 STM32duino Bootloader。还要根据“设备管理器”选择正确的 COM 端口。
8 E! a) \- n$ W* U% }2 l
' e! g( u( L+ C7 z6 m 3783dc3f903b82b65eaf1e68a1e93add.jpg
2 Y* L( @8 ]1 o* c
9 P4 j, M3 n/ f& @: V1 |完成所有更改后,检查 Arduino IDE 的右下角,您应该看到配置信息。我的 STM32 板连接到 COM6,但你的可能不同。
! f! `) B9 [- K7 s' r/ Z' Q2 t6 ~  T  @# S$ D/ ]5 w
ab960563c0e85b84d2a54507e4b23629.png : B* A6 X1 z5 I7 a' M5 E
6 O  p8 ~1 R% t
现在 Arduino IDE 已准备好对 STM32F103C8 开发板进行编程。让我们将示例闪烁程序从 Arduino IDE 上传到 STM32F103C8 板,测试是否正常。示例程序可以通过如下步骤找到
5 b' P8 X2 D/ ]+ q% C5 d- d6 y6 H" O! I0 z) [" g
f7c327acf0061d2d78f9eb686197ac80.png
( V  w% V4 c9 e5 F% d" d# r4 K& i. D% n
在打开的示例程序中, 我们必须做一点小改动。默认情况下,该示例是为 PB1 编写程序,但在我们的板载 LED 连接到 PC13 ,因此将所有 PB1 替换为 PC13 。修改后的 完整示例程序 如下。
) f$ I* L( Z) _& b. p( g" w$ M7 ?5 v: u& I6 g2 r# h$ Z  U/ U( o
94f65e6d61adf8f6b8da77c823d553c7.png 4 r/ a2 Q/ `) v- f

3 Y/ _, x# ^( c; b' ^5 r按下 Arduino IDE 上的“上传”按钮,您的程序应该被编译和上传。如果一切顺利,那么你应该在 Arduino IDE 控制台上看到以下内容。. F! O3 t; y- Q- d3 n1 [; a
3 U: C  f8 }3 u3 w& O
6005b39328ff9c53b441608fd2bb70d4.png 1 U: N4 y) T4 Q& [( B) V1 D, H

+ Y% S6 O) G% A, g; {! a% A接下来,您应该会看到蓝色 LED 以 1 秒的间隔闪烁,您还可以修改延时时间以增加或减少延迟,检验是否上传(烧录)成功。现在您可以像使用任何其他 Arduino 板一样开始使用 STM32F103C8开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。
( ~& Y! m4 s6 D; U
) K6 O8 o) G4 e$ M3 y$ O2 p
; ?  z/ x+ z& P3 i% j5 K% O
收藏 1 评论0 发布时间:2022-6-21 12:52

举报

0个回答

所属标签

相似分享

官网相关资源

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