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

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

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

, {5 Q* m. Z( T/ f在前面的文章中,我们介绍了使用“Arduino IDE + FTDI ”对STM32F103C8 开发板进行了编程使板载 LED 闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和 1 之间来回切换,有点麻烦。开发板上的 mini-USB 端口也完全未使用。而我们把USB插上电脑时,是识别不到该板的,因为它没有 Arduino bootloader。接下来我们就把Arduino bootloader烧写进STM32F103C8 ,实现USB烧录程序。目前尚不知道这种方式会不会出现不可预知的bug,不建议用于关键应用程序。/ T3 j) g7 s7 H* L. }

) @& ~. A9 N/ @+ ]5 s3 R& p所需材料* n' ~0 ~( Y2 o2 ^( I; w8 u
§ STM32 开发板 ( STM32F103C8 )* f9 h  J1 W3 a

/ w) g7 D3 g- e1 `) f. W7 n: G$ @0 x) `§ FTDI 模块
' S7 g) K2 W+ ], Y) b; k' Q  s0 Y# V6 V* w4 N# H) U
§ 面包板  m. w/ m: e# G& q/ y9 B* d8 H- C
6 j% j4 C* _) g2 M
§ 连接线
  A$ G, m- [  U0 h( \1 x# O0 l+ m  c3 O8 B/ \. f
§ 一台联网的电脑7 d* t- H& a% `7 }
% U  G8 W7 j$ w2 ~$ L
连接电路图
$ H3 L/ u( n; s% Y+ a% f* J* _要直接通过 USB 端口对 STM32 进行烧录, 我们需要先将引导加载程序刷入 MCU。为此,我们需要使用FTDI 板(也可以使用CH340这类模块)。该板连接到 STM32 的 Rx 和 Tx 引脚,如下所示。
, p( X3 K$ D: g! G0 `5 T- t
! x* f9 A& [( M' [ 0c223ba1f2e5439775030d8616a5b982.png
/ V9 ^( p9 e$ r4 c2 p, d
7 I% l  h  r2 w; J) wFTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中 A9 是 STM32 MCU 的 Tx 引脚,A10 是 Rx 引脚。8 O1 Z6 [! x6 N  s! f6 {

, e) F. |5 n, D# l  f- B; M8 \. l 036a6c17e2101b0e545d6ff2f5d9aa45.png ; d% n+ t# y- x# s
  ~6 X2 \3 v) x
在上传引导加载程序时,确保板上的引导 0 跳线针设置为 1。上传(烧录)完成,该引脚更改回初始位置。( z/ f5 M. N! [; P" q

+ a% q2 X- u1 O- B  {* v7 z 3361226955e86e2eead7900a8237d0b6.png # ^, C; A4 B- U
" E, S1 }- s% V
将Bootloader 上传到 STM32 开发板
3 F7 g  I1 y; @. z- Z1 }- J完成上述连接后,将 FTDI 板连接到您的计算机,然后按照步骤将BootLoader 刷入 STM32。* `$ P2 i$ _  X* l  r
4 [7 E. ~- Q: ]
第 1 步:准备好BootLoader 文件。$ V: [: P4 o- `5 {& y! X; _6 y3 L0 a2 e

. I$ `. h$ U; a7 j9 ~第2步: 接下来下载并安装STM Flash loader软件,将下BootLoader 文件刷入STM32。
0 J/ ?2 v: s4 u: E2 P
- W! J; ~* \4 d4 ?4 O& t( F进入ST网站,滚动到底部点击Get latest! j3 l) P* p# P& F

# e" y- v0 D3 e( h/ U- t 3045928d914d231c76a222b05ed7c58d.png ; S3 m+ B+ M1 V8 [; r# X
, T" P( k; P" j$ \% e

4 q4 S0 A( Q4 r; W2 L$ G; t第 3 步:下载前需要填写相关信息,主要是输入邮箱要正确,其他信息不重要,下载地址会发送到邮箱,从邮箱点击下载。
2 J7 t6 @4 O/ f2 G8 W
$ e; e6 R; @* @3 C8 D" F第 4 步:下载安装软件后,确保STM32 板Boot 0跳线置于1位置,并已通过 FTDI 板连接到计算机,然后启动软件。软件会自动检测 COM 端口,但还是建议查看硬件管理以确保您选择了正确的 COM 口号。
6 m: v. a9 a& F. |$ M1 |# m. A7 q2 N) r
8cf5db15a10e02b399f7b0d19b6ffd58.png
" [' i/ r1 o- ^( i0 _2 {" ^- G8 m; L# R. p& Y7 X" M+ J- G
第 5 步: 点击Next按钮两次,软件会再次自动检测板子详细信息并显示如下图。我们使用的板子是 STM32F1,带有 128K 闪存。- v2 t! B: T7 z% V" x/ N
/ h+ r3 a( x' Y) F& s3 Z+ a
8d4b937822f0817a2dceba856c30d063.png
% M$ Q) P% R$ k! L$ F9 [+ E4 C' I' j9 E
第 6 步: 在Next中,选择“Download to device”,浏览到我们在第 1 步中准备 BootLoader 文件的位置并选择它。点击Next。
; U' @" O2 S4 I" z% J4 E2 f- x7 h$ |* E- L! k3 y" C
第7步: 等待烧写完成。
, P$ D. x6 C+ d" K
' P* w& |4 _2 Z) c, z+ r3 f ad6ef0db242b5d24907152f776213f20.jpg
1 D+ L2 A  Q; q8 x( K
. |" u! \- r% f. E第 8 步: 烧写成功后,我们将看到以下屏幕。单击关闭并退出应用程序。接着我们准备 Arduino IDE 并安装驱动程序,然后才能使用USB烧录 STM32 板。. C$ K2 m. o  ~+ K) O

6 z' S6 _0 Y; U' c& N$ S' o d71c3f048026ac60e4e5411830558fec.jpg
0 L! p# `8 D+ O4 k/ h) U# e, d! U  {6 y( l7 T# M+ B% s. r
准备 Arduino IDE 并安装驱动程序
# Y$ r& x3 _2 K  F1 [% S按照以下步骤下载并准备与 STM 32 开发板一起使用的 Arduino IDE。
, ~) ^3 ]6 `( D2 H5 r
0 T4 |' g- F& c9 P0 f* Q  t第 1 步: - 安装步骤(略)
( H/ Z0 S! [: \& A% e# F$ w, k; `$ j9 D( D& P
第 2 步: - 安装 Arduino IDE 后,下载安装 STM32 开发板所需的包参考之前的文章
! L% z: W/ n* N. v# M$ v  J' f( i: j0 }4 _' f9 P- `; F% D
通过下面的网址安装STM32的开发库5 V  F3 m" W$ J: J

9 R1 z* \3 f, k% \6 @第 3 步: 安装驱动文件(找不到网址了)
& S/ J' `, V& n* F* ~4 |: m& e2 N3 K" G9 ^
install_drivers.bat 和 install_STM_COM_drivers.bat。
/ E9 G. C: ^+ @/ d# o9 H
8 S0 p* k6 t- |' d  m7 g! w5 Z7 h第 4 步: 单击两个 bat 文件并安装驱动程序。您将看到如下所示的 DOS 屏幕。# E9 C2 X3 v7 ?- x

! x2 i* j5 a8 O3 V8 o5 W: z  c 61afbca918982b5d54a8c311bada51a1.png
: i# n9 y0 o2 H: ^; a$ ?7 f$ Q; I; W
% i8 }" s) J( G: e8 c. r$ H* D# a$ D. { 03b2016294cf188b417ed56fd13dbdd2.png $ a1 b: J  x# v4 Z& Q
+ j7 C3 i. q! D. I
现在 Arduino IDE 已准备好对 STM32开发板进行编程,并且驱动程序也已安装。& I* b$ _( b3 e- Z- x6 b( r. T( f
5 P; F% h$ l' V8 `9 k( N
通过 USB 端口直接烧录STM32
; M, K' N. |! t4 @" Y从开发板上移除 FTDI 板及其他连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下图所示。确保 跳线 0 引脚定位回 0 。此后,我们不再需要切换跳线来烧录和运行程序。- S6 s# m: G* n' A/ t- v' U- T
1 P  E7 H  T* t! T
5aba8a8d626c61850924b07c4d56de13.png
+ L" d& Z; w: C% P8 i( |5 }; u9 v2 |5 V6 E2 K
把开发板用USB线连上计算机,现在计算机应该能够发现开发板了。如果您看到正在安装任何其他驱动程序,请稍等片刻。然后进入 “设备管理器” 并检查是否发现了您的 STM32 板,如下所示。我的连接到 COM6,名称为 Maple。( x9 Q: [( Q  s& i; \

; E; D4 N1 [9 k! C% J1 H1 f 0d7dbe78d4ab6b9e8c955b2f9eb95e8a.png
/ z2 O5 I. u) n1 ~6 L4 F1 T- J: _8 t2 b; {
打开Arduino IDE转到 “工具” 并向下滚动以找到通用 STM32F103C 系列,如下所示。然后确保变体为 64k Flash 类型,CPU 速度为 72MHz ,并将“Upload method”更改为 STM32duino Bootloader。还要根据“设备管理器”选择正确的 COM 端口。
6 t% \" [$ i& h( p: U: h. R$ o4 i9 ^5 U2 V2 X
3783dc3f903b82b65eaf1e68a1e93add.jpg 8 w8 V( ]: y2 ?# n* F

$ J' Q" m# w! U1 h) ]" Y完成所有更改后,检查 Arduino IDE 的右下角,您应该看到配置信息。我的 STM32 板连接到 COM6,但你的可能不同。
' M/ Y7 N. {2 k5 f' r8 \' M! l
* k% U  {6 P' J* }6 d0 S+ T ab960563c0e85b84d2a54507e4b23629.png
$ K; o6 D/ j5 G& v4 @% v& z6 D- O  a+ @- g: W0 T$ w
现在 Arduino IDE 已准备好对 STM32F103C8 开发板进行编程。让我们将示例闪烁程序从 Arduino IDE 上传到 STM32F103C8 板,测试是否正常。示例程序可以通过如下步骤找到1 g5 `+ @! s6 o( v" Z2 v/ g
* ^# n1 a2 J! `3 y& B
f7c327acf0061d2d78f9eb686197ac80.png
" V' q$ p% [0 c' r7 L
! M% e4 h9 L7 n& A4 |. G2 K在打开的示例程序中, 我们必须做一点小改动。默认情况下,该示例是为 PB1 编写程序,但在我们的板载 LED 连接到 PC13 ,因此将所有 PB1 替换为 PC13 。修改后的 完整示例程序 如下。
. b0 d( R: `; H  q7 h% }6 H9 R4 [" O; T# u( x
94f65e6d61adf8f6b8da77c823d553c7.png
2 U' s# ^1 R  J( |& l
$ W. }3 `5 F9 R7 ~; Q按下 Arduino IDE 上的“上传”按钮,您的程序应该被编译和上传。如果一切顺利,那么你应该在 Arduino IDE 控制台上看到以下内容。
1 _- e2 R' s7 i: z' j. O) Q  R4 t& r+ B) q/ x! N
6005b39328ff9c53b441608fd2bb70d4.png ( U- f) m+ k: K0 |2 y. d# C
* S0 O4 b" H( f. P
接下来,您应该会看到蓝色 LED 以 1 秒的间隔闪烁,您还可以修改延时时间以增加或减少延迟,检验是否上传(烧录)成功。现在您可以像使用任何其他 Arduino 板一样开始使用 STM32F103C8开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。
9 v8 Q# [8 t+ h" _# b# x
: W/ v7 L: n2 h
3 Z2 h  I2 {* S! L7 R9 ?% S5 {4 `) [
收藏 1 评论0 发布时间:2022-6-21 12:52

举报

0个回答

所属标签

相似分享

官网相关资源

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