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

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

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:
  U* c) f/ R0 p% M. ?(1)开发板主芯片型号:STM32L431RCT6/ Q/ l! w8 U4 J
(2)开发板主芯片封装:LQFP-64_10x10x05P
; j+ J4 Z5 E7 d' r# _2 W* E7 x1 f(3)开发板主芯片内核:ARM® Cortex®-M4
5 X" D4 H% H6 I5 I(4)开发板主芯片主频:80MHz
. e2 t* S, |: W$ Q0 m0 u(5)开发板主芯片Flash大小:256KB6 K# k% H* k1 c1 {) o
(6)开发板主芯片RAM大小:64KB
4 v# _4 `  v+ w# o& j7 @(7)其他外设:请参考芯片手册
' [( I1 u5 M/ o$ m$ R0 J' @& l0 R
/ `+ A5 O% x# ^' W
bb91345227434ee7a43a34bf3fe366e6.png
+ {$ D! B0 M4 @  z: H4 ^
+ s6 y6 z, l  M- \% G: _
929c0cce04aa4115a8623703982bf3e1.png
" E5 }: X) k$ _3 ]
1 E0 u% w7 m3 ]: A, U- ]* n" @
二、新建工程
' Q: ]3 G1 A; w: e. m1、新建STM32CubeMX基础工程

3 j& I% i7 ~6 A(1)打开STM32CubeMX,点击“File”-->"New Project"
  v, x. m% N. p2 @/ r: G9 _/ u) l4 k  Q
2399170347904e959c855fefd5877f84.png
/ G% F0 K2 ?" d" G
2 m1 e( Y; I5 l& i% e) b; Z$ t
(2)等待打开主芯片选项界面(大约1分钟时间)。
. Z2 W& a& P; _+ p$ `
" p; l6 ?! h' t: q3 w7 H; R
d74d2fdc60c9440483e2b7cf8d928e7f.png 2 [# Q9 k" @) H4 G. v. f
: t9 {* ?5 h/ Y0 c" V; `
(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。/ ^1 ?2 q# @% b

3 ]) U2 x+ g$ D8 a, i; v
7b80345238d74bea82ce70e1a348f7b4.png 4 [5 ]4 v- D1 L7 W) t+ R& z

3 l& f: n/ B/ W7 Y- i3 r( {& k(4)选择时钟源。
  s2 ~, b% y4 ]+ D; R# x, x! [' y(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。
5 I" z  W6 n; n" ?0 g(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。
: F+ \, S4 ~* {, u& a8 o
3 U! _& P4 |& ~
72119b971f62410fa8344f7f9fb9f389.png * w8 ^1 x3 H, v! U# Q1 t
, F9 d" @0 @8 H9 u3 B, U( O
2、配置GPIO控制LED
5 y2 p1 A7 p0 H8 d2 D  x(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。. `& H& i) A( r0 c+ F9 W4 Z4 C
鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。
$ G; O' f2 F; o1 _- c
. Z& f- H! }0 b+ \, w
492907c1e71149819adbaee4516a2af4.png 8 p( ~, V5 H& q& n. F3 u

& n( f- [- n7 Y: o(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。$ a  ^. o) I$ N. x5 E

0 I3 q$ t" R, @& W  F' k6 k
38ff4b80e1c5495ba3076a5158fd91fa.png
& v, {: V( n: M' S6 K) L* A" Y  _4 \

" }" {" i+ C) q3、配置GPIO读取按键KEY输入

: u7 Z6 V6 T# e! C% n! L1 k(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。( F3 ~0 W3 u" K* L
鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。
% N. L( v9 Y: p- s% m8 l; E& P3 W5 g; {1 X/ _
b93c885fa440486bbff1a8376c8cffc6.png
  v8 s5 I1 l, s" F  Q
( H( g! Q" s, L8 R6 a(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。6 |3 l, k: R) Z/ k. ]) t5 A9 y+ }
备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空)
" B6 ]  |8 Q! \2 H: n5 f( B! g8 J! A. H% w+ X* u9 |9 X7 K3 A
f4e6e85f697f4679aa2fb02ca9ea9c5e.png ; m: C9 W9 B0 @+ S; v0 ^+ K

4 V. o+ L) S4 E 4、配置项目工程参数
8 G% Z- \  C; v1 \4 i) {(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。6 `( Z) B5 }# G7 F, g! I4 p

, d5 B, q% x/ ~: e* d: e
2ce1933c10484d819234682f4abc0228.png
2 z: }* ~8 S7 }% v0 B
# ]7 o( s/ O8 @; i& ?/ |6 ~(2)完成配置工程,并生成代码。
9 U" ~) i& M! W; ~6 n" {% A
. ^6 b! }" o) r1 X. b' I
efdb616174f54925b6eac31109f227b5.png   B  B+ v% U3 Q8 @- ^
0 k' \) a# \8 h1 R' }, }# ~& b% W0 e
(3)生成代码。$ Q+ w+ Q4 u9 y" U" D* L+ Y  N
2 Y) m5 }% X/ N& e
8eaa7d0babea40ee93f158481a6ee471.png / g. |, r1 ^9 Q  D$ v! D

2 Y: u  [: c  X/ T- C' e* ^ 三、在KEIL 5中编写代码: o: h$ ?7 a! q$ q( w3 W* i7 W
1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。
: S5 u% ?1 C& y/ H+ C4 |6 D2 a, h% v& ]! D; [5 g8 w
7c13d48b987a444295903e7ede4e32f1.png   X3 @, A, `5 ]) B6 L
% c3 P9 S6 `' Z, ^( j
2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。
7 J6 P+ h, C4 z- U8 g" {6 \- q3 ?- U$ B% n; i5 l
备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。
) k0 m' n' ]2 Z- V' Y5 \7 x2 t& g3 ]& W8 |3 H
7375ae51eb184b40b06a90f83ac10604.png
$ H) f; o3 Y2 t$ X% Y- I! a0 T* k3 x: [
3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。2 I5 `6 h& ?6 S- j$ |9 Q

  F0 `! y* U9 E0 _$ N
edefb6b9a2a14be3b1221ad6d5c7a8a2.png
8 g& }( h9 ?3 f. K( t. A. p2 k- D* s5 o6 n. n7 P
4、点击Download(或者快捷键F8),即可下载程序。! Z2 P- P& M) T8 M6 ^& @
6 p, C5 ^6 v/ j& g
ba221842d5db40808aa129dd83c593d0.png ' X$ }7 x& c; I0 j7 J- I3 K9 t

- p* k- C/ {8 ?) @5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。
* M, F, T3 q9 \, i5 Y$ C% W" B# |$ \( c0 E2 ~$ }, q
9f8aa1a4e8f04041bcf5cb183facd100.png ' U6 K3 S/ U# n

: f  y0 i: m+ z————————————————9 c4 {' f2 ^/ |( f1 X7 S  c& D* v2 ~+ Q
版权声明:智能小屋ZYXC
/ \6 R& _! F9 ~5 p0 Y; C
9 b# A, t. T  U* N" B2 k
赞 收藏 评论0 发布时间:2023-1-15 00:07

举报

0个回答

所属标签

相似技术帖

官网相关资源

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