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

【实测教程】STM32CubeMX-STM32L4之(GPIO输入)按键输入控制LED灯反转

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:1 s8 E1 i# G( ~
(1)开发板主芯片型号:STM32L431RCT6
; X( C0 A7 n' K# [$ l9 x3 ~' k(2)开发板主芯片封装:LQFP-64_10x10x05P
  f6 w: M1 Z6 h3 [( U(3)开发板主芯片内核:ARM® Cortex®-M4
7 [6 q& U8 R% o+ e* g(4)开发板主芯片主频:80MHz4 u9 v8 K- }" W
(5)开发板主芯片Flash大小:256KB
$ y  O1 Q, I) c% d  h% H(6)开发板主芯片RAM大小:64KB( b( Z) h1 C( E1 L1 e# x# i
(7)其他外设:请参考芯片手册
9 ?$ x4 V% f  g0 t! {# `# d" k7 X- W
bb91345227434ee7a43a34bf3fe366e6.png : p. G$ P0 i; K# M

: I2 K/ D6 v% ~) L) P- W* T
929c0cce04aa4115a8623703982bf3e1.png
; l( {$ v+ ~# P0 {: k

( e3 d: L" f8 `) T, p8 D, Y 二、新建工程5 y, k) l" Z6 p4 |
1、新建STM32CubeMX基础工程

, o* v1 ?/ t/ {* {- B% C(1)打开STM32CubeMX,点击“File”-->"New Project"
9 `" o+ h" h, A- Z/ Q- u3 h$ O$ O+ ]& E8 P  q' `& l/ m
2399170347904e959c855fefd5877f84.png # X& q  @6 `* o( w7 I
7 C2 a7 [4 b! m+ Q" ~
(2)等待打开主芯片选项界面(大约1分钟时间)。. @: u/ P# M0 w4 Z" }
" \4 ^. c; ?, M# X
d74d2fdc60c9440483e2b7cf8d928e7f.png . \1 _9 H! d3 k: x5 m
$ E0 A4 f$ i3 v" t6 Z0 r
(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。
/ p+ p; h) ?, m* t- P5 M. i1 H0 P
! f5 w: P/ ~1 o' l4 J. A8 f
7b80345238d74bea82ce70e1a348f7b4.png
$ \. E& N& P6 }
- w4 h1 b" k. w8 x6 X(4)选择时钟源。3 n8 g* Y# }+ L
(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。4 D8 Q# G7 b" c. K4 [; d3 _* m+ S# S
(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。
) A- m, c% d. H1 {9 I1 U0 H
8 I- p& @4 }, `2 W
72119b971f62410fa8344f7f9fb9f389.png % D) v; @) W  H* z7 p( M% u) r

2 v( g  n- ?2 B+ w2 F) Z2、配置GPIO控制LED1 Z' g! t0 o9 G: O) D1 O
(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。' ^" m8 g! H- _* w' `
鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。
9 L' y" B; Z: o) K- ]/ P& L0 z( @) y9 A
492907c1e71149819adbaee4516a2af4.png : U, |4 F6 I) ]# ?) e

# e# H, y+ }! U, ]  }. t(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。
. i$ V  w! `' N0 }+ i  j
) A7 y# l0 o5 v, q$ v" Z* Q
38ff4b80e1c5495ba3076a5158fd91fa.png
6 \: z$ A+ d* y: r" b* X: X0 h
$ @* W( `* o9 V) ^, i0 p# E
3、配置GPIO读取按键KEY输入
  c; }+ a& `8 w5 V
(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。
" P! X; \* h( a; U! [3 O鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。. ?, j/ Q3 w! {! J! _, |
5 j6 H7 {4 M2 J3 s
b93c885fa440486bbff1a8376c8cffc6.png
9 A# f; x* b. c% n. I
9 v* K, E3 t5 s4 a, N(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。& j1 c1 O& P2 P5 q1 w
备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空)
4 f; t8 p. T0 g* \8 k* g3 @) V3 x. r2 X
f4e6e85f697f4679aa2fb02ca9ea9c5e.png
7 `& T; Q7 M0 z; c$ R- y

: l. M, G! U2 @# d6 }% | 4、配置项目工程参数, _& o. F; c$ S6 z3 U
(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。
+ x. b# w4 B1 T  H) n0 U
, O" W+ ~: K$ c" `6 N( T4 Z
2ce1933c10484d819234682f4abc0228.png
' a6 `( {, ~; `* J3 o
. T- W' t/ N- n(2)完成配置工程,并生成代码。
3 h, G9 a" u( K& V7 e' w, v1 I1 S* i' n7 }8 ~3 |7 Y2 y
efdb616174f54925b6eac31109f227b5.png
0 M7 F1 m: q7 }8 F2 ~
2 e9 ?. i  u2 m+ Z, i; S- Y2 m" s; Y. T2 x(3)生成代码。
1 ?# k' K8 @* x" y* o
' o$ C7 v4 r8 G4 o; W% K
8eaa7d0babea40ee93f158481a6ee471.png 0 t4 P3 J4 Z2 b3 J/ k6 n1 Q
1 E0 r2 V7 {7 E
三、在KEIL 5中编写代码
1 j! C, Q5 ^4 p, }9 G1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。
6 @$ W, N7 ^3 x) p& L
# b" y' ~3 O' ~, K: D& y8 s, I5 w
7c13d48b987a444295903e7ede4e32f1.png % |" K1 X# K, z" z
4 U$ w. w9 U2 {* `6 U9 O
2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。$ ^2 v$ P6 v4 ~7 M

3 f4 J, ^) @; \0 L% y6 c! P备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。
* y" z: N1 U) @" L8 M
: _  H3 C+ Q$ F) L
7375ae51eb184b40b06a90f83ac10604.png + s2 J4 q# R, B. O0 J, z: [
& Q; C3 |* e8 g0 h5 y) L  e1 e( J6 v6 I
3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。! \! ~0 j( ^6 O) l9 y6 o  x* h3 U" q, O

8 Y: k1 H! Z. Q- K# y
edefb6b9a2a14be3b1221ad6d5c7a8a2.png 9 L# d) `/ K9 }1 J0 I* q

9 Z. }& k  Y- m# o: R' t* V 4、点击Download(或者快捷键F8),即可下载程序。7 S, ?# z) f% L" u

. b1 ~& P3 t  d$ r5 S) \! n
ba221842d5db40808aa129dd83c593d0.png
- f( X7 m- W* R) w- T/ ~' b
1 w- m/ \$ f% j; `  Q0 m5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。- X+ X  j6 w8 ]  p' f) `# J

9 G( x/ {, L( f% P" P' a0 S; T 9f8aa1a4e8f04041bcf5cb183facd100.png ! u" R' `% _% I0 k: q8 G1 D* z& y! [3 @
  l* n6 s$ L& e1 O. T) ]
————————————————& Q8 V6 |; Y& `% o
版权声明:智能小屋ZYXC/ g$ R1 T6 l4 q; D' ?
) f$ y; L$ c1 P  m" |
赞 收藏 评论0 发布时间:2023-1-15 00:07

举报

0个回答

所属标签

相似技术帖

官网相关资源

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