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

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

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:$ R8 F( N* O' ^& A
(1)开发板主芯片型号:STM32L431RCT6
" y4 n) L* U" ~! F! h; O: D(2)开发板主芯片封装:LQFP-64_10x10x05P7 H( e% t3 a; D7 w% G1 F) e
(3)开发板主芯片内核:ARM® Cortex®-M4  C; G% v6 N: N# _2 _  [
(4)开发板主芯片主频:80MHz- n$ N# N/ O  ]- E3 ~' Q
(5)开发板主芯片Flash大小:256KB
, d, M, l7 e* t8 [: t(6)开发板主芯片RAM大小:64KB
& f& X/ ~6 o# C" o, j(7)其他外设:请参考芯片手册( B6 e  j4 W4 o0 X$ P
+ A- w0 P. z9 v* C$ U' l* [
bb91345227434ee7a43a34bf3fe366e6.png 0 l5 z) C% |' L' ?4 K

$ Q4 S5 F% d$ ?% f3 e( i
929c0cce04aa4115a8623703982bf3e1.png 3 c. l  f; \5 P/ H" Y3 }, H. R: S
5 V+ }4 y  C9 M) m( \' I- H
二、新建工程
) t! S0 J4 c3 B. g% G1、新建STM32CubeMX基础工程

) I4 L, q: _, B0 j0 g& Q(1)打开STM32CubeMX,点击“File”-->"New Project"
! [- ]! G9 l1 B0 m1 P
9 {& }; a3 H1 t- h( i$ F1 P
2399170347904e959c855fefd5877f84.png 4 n. [2 \3 c, x% |7 Q+ @, q

9 P% p2 t8 K% z2 _) |(2)等待打开主芯片选项界面(大约1分钟时间)。
( l# @. H$ H1 `1 D/ a0 \- D( \! N& ?! s; d
d74d2fdc60c9440483e2b7cf8d928e7f.png # a3 [: l9 L) n: p

$ `* Z& J' L- d& ^(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。
8 z; b$ `! y! o9 V: P, y2 n
, \* q% W- V% F9 H
7b80345238d74bea82ce70e1a348f7b4.png
$ q- z+ d3 Y/ |% [9 }( T
  ~$ y) s2 e  r7 o3 [; P(4)选择时钟源。+ [% n3 @' S; l
(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。' V' |3 M( N/ ^7 s* U
(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。9 a! V9 I1 m3 J5 a, {
% D: j: A: l2 S% ?
72119b971f62410fa8344f7f9fb9f389.png 0 r$ B5 Q' E& z( Z( @
+ p5 F8 C1 V7 p: @
2、配置GPIO控制LED& g  U# ]8 S9 \
(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。: ^. N" j, s0 [$ {
鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。$ U9 u: f6 T, u( n9 _& k. ]
) s7 S/ J1 X2 J  }1 h3 k/ Z; {+ f
492907c1e71149819adbaee4516a2af4.png
" S+ o- u/ x' W! ?4 o& }6 h* K6 j5 u% Y) i6 ^
(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。  `2 q2 ]( i/ g# _: X+ Q( _1 M

' S9 L/ L$ t( _$ A7 z9 L2 E+ N
38ff4b80e1c5495ba3076a5158fd91fa.png ! K; s; G+ ~' t; \
; z# A% H" p) g, A+ j$ @
3、配置GPIO读取按键KEY输入
3 |% Q) f, Y# L; _5 |
(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。+ k) m* b( C8 [+ {( N
鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。* G8 |* Z2 P% S3 ?' D5 Z6 B+ J

0 l/ D* a- P. F1 Q+ R  j
b93c885fa440486bbff1a8376c8cffc6.png 9 f0 ]# `, E/ R6 W5 Q

* h) @! o5 w. [8 I! t(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。
( ^) t0 p. y! w6 z+ {: t8 E备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空)
0 c  s' p" g  J2 ]2 `7 p- i6 Q  m. m/ l# @! `0 I3 g
f4e6e85f697f4679aa2fb02ca9ea9c5e.png 6 \; B& G1 l  y

; ]% E) {' h% q1 U- [  B3 `! ~/ o$ d 4、配置项目工程参数; E0 M( p0 h: G" e( I
(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。* H5 |' q0 b' p

5 I' R, B0 j; \+ d5 N. ^) f, D8 X
2ce1933c10484d819234682f4abc0228.png 3 [+ }7 [. `0 e" U
1 g* N* {  M6 w9 @& i( R
(2)完成配置工程,并生成代码。
2 S- v& I" d0 ~" w$ e
* }( i8 F, H$ J0 C5 Y8 s, G
efdb616174f54925b6eac31109f227b5.png 6 ]: H( {' ~  @# o
8 K6 R/ Y9 w5 G7 t/ o
(3)生成代码。
& g' h7 N. M  g1 W2 Q* }. W. u: G/ K+ }4 K- G% H$ f
8eaa7d0babea40ee93f158481a6ee471.png 6 C" z1 }& t  c* ~/ u1 @
/ X4 ]( h' P3 @* r
三、在KEIL 5中编写代码
8 m' O# {1 H3 V4 }+ t( M8 {5 E1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。$ T0 v3 C) X( ?6 E
! R1 W% F9 R# o7 S9 n3 R2 J
7c13d48b987a444295903e7ede4e32f1.png
, i2 i3 _& V" k% z  [. D4 l( J+ p1 W6 A- [. S) |
2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。
: y+ \4 I$ y; s% c3 B
. G5 Q5 w$ f$ z4 T备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。1 ]$ \8 N: H9 \6 W- I& @; D

4 h' E6 a1 X0 O9 l1 X
7375ae51eb184b40b06a90f83ac10604.png
6 k5 ]$ v- s% @3 w2 D/ o
: A& r. t8 `; q7 L4 U5 u& l5 U) i3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。
' Z% H! I$ `3 M7 \! N( h# W8 a( k; Z
$ i1 j( |$ _0 f* b! {
edefb6b9a2a14be3b1221ad6d5c7a8a2.png
, ]+ I# w* ~  [; s6 F
* G/ o  a8 J, k 4、点击Download(或者快捷键F8),即可下载程序。9 R3 E  U) \6 ^( W1 b$ h1 G

, P; }, p( E: l/ x# A. r
ba221842d5db40808aa129dd83c593d0.png ( r* S) e& \8 B4 T

. f- G: F" d/ E% v5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。
# Z6 U7 M4 q  L, e2 \
8 B/ ?. Y. d8 h+ ~ 9f8aa1a4e8f04041bcf5cb183facd100.png ! I% G; H8 l/ `' v& C3 Z

( l# h5 G6 m1 Z! l4 E' M————————————————
. A9 y" [. l/ o版权声明:智能小屋ZYXC
/ z3 T* Z. b$ t4 b3 n! h! n1 @
* y8 O; A: J4 ^# X% ]7 L( L% P5 ?
收藏 评论0 发布时间:2023-1-15 00:07

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版