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

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

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:/ p# ~+ p! \! S5 d7 U
(1)开发板主芯片型号:STM32L431RCT6
, H( [2 [& G# V& \5 c9 d(2)开发板主芯片封装:LQFP-64_10x10x05P/ u) V2 N* ], @5 y) |9 N8 [
(3)开发板主芯片内核:ARM® Cortex®-M4
2 `; m  e6 n% q& H(4)开发板主芯片主频:80MHz; M( B2 }0 w$ w5 y; {8 h
(5)开发板主芯片Flash大小:256KB+ r! _& I. e  {+ i- G7 f9 Z2 N1 k& D
(6)开发板主芯片RAM大小:64KB
9 q. o: t# B( U* A6 L( _/ {1 C(7)其他外设:请参考芯片手册! u# S) I+ L3 c5 r
$ ^3 K: ^- k0 ]/ M
bb91345227434ee7a43a34bf3fe366e6.png ; O# p2 c! X7 r$ i: F  k& S
7 a7 K. ~. n- }$ i( o2 C  c
929c0cce04aa4115a8623703982bf3e1.png $ ^  l$ e3 S. I9 Z. l* U3 G

  Y+ _1 s% F8 ~ 二、新建工程
4 d3 I; W5 N1 O1、新建STM32CubeMX基础工程

  N3 N0 n0 ~/ B(1)打开STM32CubeMX,点击“File”-->"New Project"/ J% f3 a+ ?# G( E3 r
# U% p7 j+ r8 }8 f0 l" c/ l' I
2399170347904e959c855fefd5877f84.png
" z1 m  G, W' I$ ^! e
; ]9 Y0 _$ L4 x5 K
(2)等待打开主芯片选项界面(大约1分钟时间)。
+ z" B2 M" Q4 J: C0 y% a2 r4 D' u* M! B2 b! P4 Q8 q, ]! q
d74d2fdc60c9440483e2b7cf8d928e7f.png
( E1 u3 f2 J/ E4 o4 o# y' \
: V# C/ q; X- ?, P(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。- s% C" o0 |2 H

2 \, b9 Q1 ^9 O
7b80345238d74bea82ce70e1a348f7b4.png $ d- [: Z7 x6 ?
) @) }: W" }( c; Q6 }( A0 H! L5 J
(4)选择时钟源。
5 {- b, f  F# ]3 t! U: b9 S(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。
0 I- Q5 q- y. v- Q(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。
4 x! J. i6 M4 z
7 y7 A; \( W! z3 k9 V1 X
72119b971f62410fa8344f7f9fb9f389.png + e& W% B3 a% G6 c! `

% y. }$ p9 w# b1 n2、配置GPIO控制LED) U* |7 Q, K- ]$ |/ V
(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。
4 Y) i" x4 f4 B' Y" {9 G0 w) y( ?鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。
1 ^3 g. P2 j7 d
. V2 t( x" k8 b; J8 @! y4 h) x' y
492907c1e71149819adbaee4516a2af4.png
0 F9 ]. k0 {9 G* }1 h- q0 `1 Y5 _" B, N0 F; D
(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。1 ?- [. h9 `" F' B4 b1 Z  f
, J* B  Y6 q. f8 y; [. U
38ff4b80e1c5495ba3076a5158fd91fa.png
9 ~. L: ]* P$ Z6 p, v

2 J; v& d* `% P; U% Z" E  x2 Q6 F: c3、配置GPIO读取按键KEY输入
& h+ C$ n6 s- ~0 x$ M) l
(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。1 ^% I0 L8 Z# @. e) U) Z
鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。
+ B, s0 [  B. _" {$ |6 |' d' o! V+ l: k' L- ~
b93c885fa440486bbff1a8376c8cffc6.png " p% k: R# a7 _2 q
; x0 ?' j& u- z* Z. k# P6 m# M5 \
(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。6 B% ]2 B$ a$ s) d
备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空)
- u5 w6 O, c' E7 |7 x: J; c4 s" g1 y( e( w+ ^: f
f4e6e85f697f4679aa2fb02ca9ea9c5e.png
" V9 j# ]+ z/ B: |0 r

4 |) N9 z9 I- e. L" P! t/ n. _/ r6 N 4、配置项目工程参数
0 w5 U# ]& M+ o5 C(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。- J0 V% s. \6 i9 F8 ~+ C

' X6 H4 \' u9 N. q. r
2ce1933c10484d819234682f4abc0228.png ' i( R/ h! l3 T/ _

- G  R+ D( G: \$ M; y0 V# @(2)完成配置工程,并生成代码。
* [3 t0 S3 K" |( a7 h) Q
" V( C" [! K' h0 T; ~7 g, m
efdb616174f54925b6eac31109f227b5.png 5 c. |& a/ [- V6 m/ p0 P$ u

4 F+ h: N% R& f! F) K' r  g(3)生成代码。' `% Z& O' l0 U, s

7 o$ ^. N( \0 M; J$ ~' r: J" A
8eaa7d0babea40ee93f158481a6ee471.png   A( _) A1 ?* g" f  f
7 h( @6 X0 ?) `) t
三、在KEIL 5中编写代码: Q( t2 Y; Y8 Z5 P. e* \; [2 v
1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。
- h4 _8 P  f% O2 q/ @- J
4 J, g  P. f; ?9 \0 }/ I
7c13d48b987a444295903e7ede4e32f1.png ; Q$ W, C: S$ Z8 K5 N! e4 u

: p/ R( T7 t4 X1 ?2 h; K; A2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。- G: ?" ~9 M' p
$ J" ?* A  r( H* O- Y% g
备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。
+ y. j$ G+ `( F' s( @
9 [/ ]5 w. d1 X" W3 q  j( w% ]: L
7375ae51eb184b40b06a90f83ac10604.png $ M9 ^' ?  J# W& q8 q: H$ {+ S# s
2 j# _  ]) w  }! D
3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。
+ S! z/ |6 I7 H1 N& Y3 J, |/ `
* a) A% d$ S; B* Q) V0 c1 p* ]; V
edefb6b9a2a14be3b1221ad6d5c7a8a2.png
7 ^! Q) a5 a4 I* m8 c+ ]! S
7 D4 E7 t# e( u8 h& X/ z 4、点击Download(或者快捷键F8),即可下载程序。
/ p2 Z" g! s( k+ a$ s  ?! T. n% a* o$ I' H% D' h$ Z& c! H) }
ba221842d5db40808aa129dd83c593d0.png 4 y/ a5 D! G' ?% d8 e+ h

3 \2 ?3 `" [) G7 c5 S, k3 {5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。% |7 Y1 R7 ]( @( `  O' j
$ Q  n- x1 `" o: P. A" ^
9f8aa1a4e8f04041bcf5cb183facd100.png
# z' ]" B8 `3 J+ D' z8 L4 l$ X% C( h. l4 _
————————————————
3 s; k/ [3 T& V& C6 q2 K/ @) l- u版权声明:智能小屋ZYXC+ T' g! S* a7 B

/ r6 I: N0 @/ ^" ^+ V% d4 Z
收藏 评论0 发布时间:2023-1-15 00:07

举报

0个回答

所属标签

相似分享

官网相关资源

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