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

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

[复制链接]
STMCU小助手 发布时间:2022-6-21 12:52
搭载STM32F103C8 核心的 STM32 开发板由于其 ARM Cortex M3 架构而越来越受欢迎,它具有较高的运行速度和更多的外设选项。此外,由于该板可以使用 Arduino IDE 轻松编程,因此它已成为许多爱好者和工程师快速原型设计的首选。
" i! a  ?/ e5 s  X, b8 ]; e& e6 F
+ r! _4 F7 y- C! N0 }在前面的文章中,我们介绍了使用“Arduino IDE + FTDI ”对STM32F103C8 开发板进行了编程使板载 LED 闪烁。但它有一个小小的缺点,需要对其烧录时,我们需要使用FTDI模块,并且在烧录和测试代码时还必须在跳线0和 1 之间来回切换,有点麻烦。开发板上的 mini-USB 端口也完全未使用。而我们把USB插上电脑时,是识别不到该板的,因为它没有 Arduino bootloader。接下来我们就把Arduino bootloader烧写进STM32F103C8 ,实现USB烧录程序。目前尚不知道这种方式会不会出现不可预知的bug,不建议用于关键应用程序。' J/ ^) E1 f$ [1 U( n! F' T( h

( h1 a2 M7 X. _" e3 ?所需材料" A) z+ b/ b0 `+ ~2 N5 ]
§ STM32 开发板 ( STM32F103C8 )
: z/ I6 L! ^" I6 Y  R" U( G/ A; K8 X- }. U4 |
§ FTDI 模块; x7 @3 a; n" \) l6 z
3 G6 m; a" C" B# ?& Z$ t0 R  F
§ 面包板5 o: H/ P8 X* _  R

# w: d* ^3 d  F§ 连接线% Q9 h% K' I3 O7 q4 D

; ]- z4 m! [/ E& A! Z, X* c§ 一台联网的电脑
$ O( k; }2 u% A8 @7 r# ?  m& @4 v" ^+ G9 l
连接电路图
! h9 l2 N9 Y$ l  `% W9 {要直接通过 USB 端口对 STM32 进行烧录, 我们需要先将引导加载程序刷入 MCU。为此,我们需要使用FTDI 板(也可以使用CH340这类模块)。该板连接到 STM32 的 Rx 和 Tx 引脚,如下所示。
* V" v" x- Q4 z. P6 O9 C+ m' y0 ^' U) T( O/ s
0c223ba1f2e5439775030d8616a5b982.png 7 z! x+ w* m+ ?
9 Z3 w( A" Y1 K% J
FTDI板的Vcc管脚连接到板子供电的STM32 5V管脚。地连接到STM32的地。FTDI板的Rx和Tx引脚分别连接到STM32的A9和A10引脚。其中 A9 是 STM32 MCU 的 Tx 引脚,A10 是 Rx 引脚。
# z5 ^) V' K/ c/ _0 ]2 K' R' b
( i: B2 @4 `6 q$ N/ q* n 036a6c17e2101b0e545d6ff2f5d9aa45.png 4 V% y. D  k4 f. Q' Z
5 \: N* Z) d" B  K. \  O0 B8 N
在上传引导加载程序时,确保板上的引导 0 跳线针设置为 1。上传(烧录)完成,该引脚更改回初始位置。3 m6 n3 u5 x% N  U9 L# k* y# v

* w$ N, k! a  i: a9 \3 R 3361226955e86e2eead7900a8237d0b6.png
. D2 w8 m& W, O: P/ o9 Q4 `- O0 k, w( \( Z6 _6 x, M& o, m( y' Z
将Bootloader 上传到 STM32 开发板. Q8 k& T8 S. E4 K
完成上述连接后,将 FTDI 板连接到您的计算机,然后按照步骤将BootLoader 刷入 STM32。
& v* O) O6 j6 {. z5 P. s) K- _# {% ?8 d7 D7 B3 I5 j0 t' V  w. K
第 1 步:准备好BootLoader 文件。! F/ p5 @# [2 b6 @

0 ~' e) S( K/ `3 G第2步: 接下来下载并安装STM Flash loader软件,将下BootLoader 文件刷入STM32。5 n/ P% t2 j9 W

- r4 ]7 _: Y" T6 X; s进入ST网站,滚动到底部点击Get latest, S2 f" Q1 X4 T( I3 \% ?

' h6 }8 a- r* p+ k 3045928d914d231c76a222b05ed7c58d.png # H) P8 E2 ^% p/ V7 L4 _

9 m' |0 `4 N- }+ z3 G" v3 w2 G9 ~% ^" ]7 ?: ?% s8 b  f+ V
第 3 步:下载前需要填写相关信息,主要是输入邮箱要正确,其他信息不重要,下载地址会发送到邮箱,从邮箱点击下载。
; ~4 j5 a7 P; ]- F5 ?, |
' K: h% _* j' T, K# a  x第 4 步:下载安装软件后,确保STM32 板Boot 0跳线置于1位置,并已通过 FTDI 板连接到计算机,然后启动软件。软件会自动检测 COM 端口,但还是建议查看硬件管理以确保您选择了正确的 COM 口号。6 @9 |$ ]# {( A/ \! r6 ]. b" O
3 W+ N3 j% t6 G  L. O: {
8cf5db15a10e02b399f7b0d19b6ffd58.png
3 m( {0 }7 S8 d! n* n( M9 e8 d+ d3 i
第 5 步: 点击Next按钮两次,软件会再次自动检测板子详细信息并显示如下图。我们使用的板子是 STM32F1,带有 128K 闪存。
; s7 O9 ]! m+ N) x: T0 a8 h, n- {) B1 C) v0 j, s
8d4b937822f0817a2dceba856c30d063.png . C" s( R/ A. @5 H
: n4 n/ l" N$ S! Q" S4 V) v
第 6 步: 在Next中,选择“Download to device”,浏览到我们在第 1 步中准备 BootLoader 文件的位置并选择它。点击Next。* s5 T2 e, _! ~! t, _( |

! W4 [5 ^# a, s$ g第7步: 等待烧写完成。
4 E: Y  z% B  J! W, a# r: X: U( V7 P4 c. O2 l1 t
ad6ef0db242b5d24907152f776213f20.jpg
6 J5 @  l: D# P1 e0 z# i" K8 }( }# H+ w+ G; z* w4 v
第 8 步: 烧写成功后,我们将看到以下屏幕。单击关闭并退出应用程序。接着我们准备 Arduino IDE 并安装驱动程序,然后才能使用USB烧录 STM32 板。. I! k' t) ^: o) R$ X' u( y
. Q. Q9 n. u7 ?- S5 v4 q
d71c3f048026ac60e4e5411830558fec.jpg
3 t# H8 ~& @- X% O1 `; ^8 K& M
' c# M& l, C4 Q3 {/ N( z准备 Arduino IDE 并安装驱动程序; \. A! t4 U: H& e
按照以下步骤下载并准备与 STM 32 开发板一起使用的 Arduino IDE。
, z' B/ b$ l, k- V, x" \" R0 [. m0 b
第 1 步: - 安装步骤(略)2 c. z! N" D5 e: d* ~6 k
) z3 J9 D8 M" m  `
第 2 步: - 安装 Arduino IDE 后,下载安装 STM32 开发板所需的包参考之前的文章
$ D7 G' n. ?8 l, @6 X" L3 c6 B# v  e' c9 G
通过下面的网址安装STM32的开发库. ?! J7 o! u$ p# }7 h3 B
0 |: ]5 p3 q- f7 l
第 3 步: 安装驱动文件(找不到网址了)9 J: w3 h8 h3 E. {, E
# X4 w7 n7 P" y1 \
install_drivers.bat 和 install_STM_COM_drivers.bat。
- W# f4 W3 M- S1 V( l9 T
1 L$ k1 G8 u' U$ J" L* Y第 4 步: 单击两个 bat 文件并安装驱动程序。您将看到如下所示的 DOS 屏幕。
* S( s6 Z3 O; O- O- u3 [; E% K$ B4 b# G
61afbca918982b5d54a8c311bada51a1.png 1 k3 M0 C& w* }3 j0 r

3 v& b* q0 m) f5 s6 M 03b2016294cf188b417ed56fd13dbdd2.png
- {9 E9 y$ a. p1 e: b1 E* k0 R! |- ]; H9 J% \$ @9 v# t& D
现在 Arduino IDE 已准备好对 STM32开发板进行编程,并且驱动程序也已安装。, y& I# `3 z( N
# C. {, f" C9 T3 h% m
通过 USB 端口直接烧录STM32; ?$ }) g1 ]: l7 [. }5 O$ i
从开发板上移除 FTDI 板及其他连接。只需使用STM32板上的micro-USB端口将其连接到计算机,如下图所示。确保 跳线 0 引脚定位回 0 。此后,我们不再需要切换跳线来烧录和运行程序。* m4 d3 w% p* Y/ l4 ?
2 j" i, e/ o9 F8 X5 T
5aba8a8d626c61850924b07c4d56de13.png
7 W9 K) x7 w" B% {. k+ c( O2 \% O& x% `+ ^9 T* e$ D
把开发板用USB线连上计算机,现在计算机应该能够发现开发板了。如果您看到正在安装任何其他驱动程序,请稍等片刻。然后进入 “设备管理器” 并检查是否发现了您的 STM32 板,如下所示。我的连接到 COM6,名称为 Maple。
. S+ o  T9 V4 l; D5 S
* [3 T; L& U) ^& O; m9 Y 0d7dbe78d4ab6b9e8c955b2f9eb95e8a.png % Y. Q1 m* s$ ]0 Y; a3 g; J" r
2 A! D/ p, }6 T- Q$ ]# R
打开Arduino IDE转到 “工具” 并向下滚动以找到通用 STM32F103C 系列,如下所示。然后确保变体为 64k Flash 类型,CPU 速度为 72MHz ,并将“Upload method”更改为 STM32duino Bootloader。还要根据“设备管理器”选择正确的 COM 端口。
" w& J9 `3 n& b. u) n  c
$ R7 m' ]2 e/ {1 c$ V7 |- l 3783dc3f903b82b65eaf1e68a1e93add.jpg 9 G, ]- k$ ~( b1 d
& L9 C2 l  f) I
完成所有更改后,检查 Arduino IDE 的右下角,您应该看到配置信息。我的 STM32 板连接到 COM6,但你的可能不同。
- i$ _& W( U% T/ f( @$ d0 a) ^1 c! c  R( \' m
ab960563c0e85b84d2a54507e4b23629.png 4 ^% S# p5 M' Y; R  h! Z$ Z1 ^

- ?8 Z. B- O, K$ x4 M, f$ Z" R现在 Arduino IDE 已准备好对 STM32F103C8 开发板进行编程。让我们将示例闪烁程序从 Arduino IDE 上传到 STM32F103C8 板,测试是否正常。示例程序可以通过如下步骤找到/ ?$ N/ B) B5 |
; a! h+ b% g2 h' Y. j4 n, z
f7c327acf0061d2d78f9eb686197ac80.png * @0 }& j% O9 H+ h. @2 v
' A& d; ]  Q3 T6 e
在打开的示例程序中, 我们必须做一点小改动。默认情况下,该示例是为 PB1 编写程序,但在我们的板载 LED 连接到 PC13 ,因此将所有 PB1 替换为 PC13 。修改后的 完整示例程序 如下。
0 ]: P4 L4 `3 u+ |
' x" Q$ |( ]5 }: i* L7 d3 S 94f65e6d61adf8f6b8da77c823d553c7.png & i, I- q7 s# k0 b) [! j) k

9 q) ]9 k8 z$ j7 ?/ O' X0 i按下 Arduino IDE 上的“上传”按钮,您的程序应该被编译和上传。如果一切顺利,那么你应该在 Arduino IDE 控制台上看到以下内容。
; }! f: B, D, i9 j! T9 L3 I0 k
$ t& k  P" W4 P$ @& J) `5 S' g 6005b39328ff9c53b441608fd2bb70d4.png - H$ f1 ?" a0 C( e

0 N$ H; X4 w0 w8 _. d, r" }接下来,您应该会看到蓝色 LED 以 1 秒的间隔闪烁,您还可以修改延时时间以增加或减少延迟,检验是否上传(烧录)成功。现在您可以像使用任何其他 Arduino 板一样开始使用 STM32F103C8开发板了,即不再需要更改跳线的位置或使用外部硬件来上传(烧录)和测试程序。! F6 H9 m/ L+ y, h; Q* ^
$ J  a7 `1 s: ?& F& F

# q1 O5 e% `, b! i% [
收藏 1 评论0 发布时间:2022-6-21 12:52

举报

0个回答

所属标签

相似分享

官网相关资源

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