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

STM32CubeIDE开发M4—点亮第一个LED灯

[复制链接]
STMCU小助手 发布时间:2022-8-27 14:35
一、搭建开发环境并新建工程% n) Y; q% N  P* [" J

# q; [" |- k2 F5 U. l二、编写代码,使LED闪烁
) ?) Z9 V% n7 }) e  V在main.c的while循环中加入如下LED闪烁代码
2 X3 ?) I9 B4 U6 c, S/ K# q. y7 O: |' ^. k, e2 b
  1. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_8, GPIO_PIN_SET);         //设置 GPIOG 8 引脚输出高电平
    - f, M" `) b# x$ l5 S
  2. HAL_Delay(500); //延时 500 毫秒& k; Z8 t) |3 z7 T' m, D( G
  3. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_8, GPIO_PIN_RESET);         //设置 GPIOG 8 引脚输出低电平
    * u, K( C# R: m7 q5 ~+ w
  4. HAL_Delay(500); //延时 500 毫秒
复制代码
# R/ Q' q7 J/ D! D0 X8 U' f( T/ y
20200925150457245.png
0 K  n! M1 @; H5 [
2 B& c) z# ?/ A0 Y3 v( G  f然后点击保存5 a( _/ w2 e) \- n. H
$ o# U; a* f, D# o
三、编译工程
* Y8 `: c8 l5 E% l7 r选中工程,右击,选择【Build Project】,开始编译工程
! a- c9 Y7 r) x 20200925150220484.png
! w( k8 u2 K2 f) ?; m& V/ D7 ^" I' U  A$ _  `& m, P2 F7 {
编译成功后可以在控制台看到编译成功的信息
; ~4 s: T/ n$ P8 V, s, s( N$ z6 W9 ?8 P
20200925150645769.png
4 J4 U: H- h# b8 s, M: v, `
7 a6 m, C1 d! r2 }- z* K同时也可以看到其生成的目标二进制文件在【Debug】目录中
8 s4 H, \5 D! m' z" u
8 r, r) t' S* Y) K6 P7 `+ i: k# ?+ ~% c7 m/ n' S9 k

6 x* w8 e( }0 R, ~四、上传二进制文件到开发板
0 T6 S7 b) o% V2 H/ @1 a启动开发板,进入Linux系统,联网,并和电脑处于同一网段,然后进入/lib/firmware目录,然后将之前生成的二级制文件放在该目录下,可有多种方式,例如:8 m7 p: d% o) Z& M+ K9 e& b
方式一:使用【MobaXterm】可以直接拖拽进入,或者点击上传按钮上传
" A1 M. @3 n' ^$ m9 q- P4 W+ T, T* X: T8 x
20200925153345347.png   h/ \; s3 z; @6 d% i
0 Q0 T% I( x, G2 W; f8 l7 v0 ?
方式二:使用scp命令,在二级制文件目录下打开命令行窗口,5 e- b. M# u7 o# ^
0 ~/ U4 g2 `! _/ ]* y7 a
  1. scp STM32MP157D_Prj_CM4.elf :/lib/firmware/
复制代码
( X2 K# ~$ J( y2 V
20200925154108804.png
0 U% D- \) T$ K% Z7 q3 s+ x+ R/ g  A$ v5 }2 _* g
上传完成后即可在/lib/firmware目录下看到该二进制文件
0 F, M: X: k5 k( @" G: B9 [  S& X( J' y! y  E7 w" I) C
20200925154331740.png
  a$ D2 F7 X. H- e" g
( p  p) d) C9 X$ {* c3 B五、加载运行/ Z4 r9 \# L. Q) u8 W, S. Q
使用如下命令启动运行M4的固件+ ~4 Q6 N5 X1 {1 n3 r& W! G

" u" t# w0 h0 S( Y. s
  1. echo STM32MP157D_Prj_CM4.elf > /sys/class/remoteproc/remoteproc0/firmware' r/ \8 q4 F# Z; T9 U" x. T
  2. echo start > /sys/class/remoteproc/remoteproc0/state
复制代码
其中第一条命令为加载固件,第二条命令为启动M4,使用如下命令停止M4运行; m2 p/ O% I8 K4 H$ p8 f

8 O# b, C* J9 G- ~( n$ E
  1. echo stop > /sys/class/remoteproc/remoteproc0/state
复制代码

, f$ [. P# N0 f! k' g启动M4后可以看到黄色LED灯闪烁,停止M4后黄色LED停止闪烁。
( b3 t% A/ N' M9 i' s
, `/ |( `9 Q, H3 c 20200925160702532.gif 1 C: r( j$ z( i, }7 S

1 F. Z) Y' k+ v! y* J% ~* F' T& N0 B六、使用ST-Link调试
; a  V1 d) l! {( L: [. W- Q
M4 的调试方式有两种:工程模式( Engineering Mode)和量产模式( Production Mode)。
1 D) _9 n2 F( z7 G$ d1.工程模式:类似 STM32 单片机烧写到 RAM, M4 启动,无需 A7 加载。 因为烧写到 RAM 里, 掉电程序消失,一般用于调试。* \) C7 V5 q$ t3 i+ ?
2.量产模式:A7 启动后,通过 Remoteproc 服务启动 M4, 固件先被存放在 Flash,掉电不会消失,但需要 A7 先启动,引导 M4 启动,用于实际部署。
" D$ ^2 ?6 A" n" E+ v, r$ C: D6 a$ y4 [
将STlink连接到开发板,然后将拨码开关从EMMC模式(010)设置为调试模式(001),然后开启电源开关
- G6 K% S  ~/ ?9 y$ |2 _( F  x) s$ s/ V. A$ C4 O
20200925163952196.png 7 p6 [8 H1 V5 }8 N+ Z2 @7 d+ Q
' G& F5 q1 K4 N3 |8 I, Z
接下来在STM32CubeIDE菜单栏点击【Run】->【Debug Configurations】, g, d6 X  T: [& W4 H

! O0 H- P" q+ z- G3 l, ?: C 20200925164306237.png 0 k* x0 X& p2 v6 ~

5 K2 p) V' k5 |  f$ H首先点击【STM32 Cortex-M C/C++ Application】,然后新建调试“ New launch configuration” ,然后就会默认选择之前生成的二进制文件,. K; @: }6 l5 a

- v& G* W6 P* v  e 2020092516464267.png
  k9 B0 l/ p. U- [9 O
1 s9 w; o$ h3 G1 o* N然后切到【调试器】标签页,在【Load Mode】单选框里选择【thru JTAG/SWD link(Engineering mode)】,
% }- P$ y  X+ V7 b# P. t# u也就是工程模式, 调试探头选择默认的【ST-LINK(OpenOCD)】, 最后点击【Debug】开始调试, 如图所示。
- n1 V8 I8 b5 Q- B5 O
# U1 `! z% s1 J3 Z: D 20200925164904176.png
: r7 ?+ M& n1 V" s
/ d2 G) B5 n( ]; @' q. d3 b————————————————7 z2 G) S0 P8 f5 e
转载:Willliam_william
9 V2 Q! V8 {' Q' {- l
3 [$ L/ ]/ }) d& U; O. `* F, ?
* }3 q6 Y' a  H
20200925151148473.png
赞 收藏 评论0 发布时间:2022-8-27 14:35

举报

0个回答

所属标签

相似技术帖

官网相关资源

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