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

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

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:  s" h* F9 W" W; D
(1)开发板主芯片型号:STM32L431RCT60 N( C/ x9 A+ m2 C1 _
(2)开发板主芯片封装:LQFP-64_10x10x05P8 F( {1 j+ B+ z3 |" X+ J
(3)开发板主芯片内核:ARM® Cortex®-M4
1 Z& E' S- i  |' `8 U(4)开发板主芯片主频:80MHz7 a5 D) R# O. s+ n2 W1 s
(5)开发板主芯片Flash大小:256KB& u5 V; ~3 }/ ]" S; z# o# o
(6)开发板主芯片RAM大小:64KB
3 f8 s7 m2 ?6 ?* G7 b. o4 }) k8 Q(7)其他外设:请参考芯片手册
4 v6 c6 a, n" S$ n
. J! `3 f) q* L
bb91345227434ee7a43a34bf3fe366e6.png
- [' m+ @, m. z9 T4 T
; _+ E1 N8 K2 z+ z  v
929c0cce04aa4115a8623703982bf3e1.png
4 s1 h. X% C3 N8 g

+ o3 f/ C& ^* j) t' z  G 二、新建工程
3 o6 S; \; @, n: i" A6 M1、新建STM32CubeMX基础工程
! V/ L% L$ U, f1 Z0 U
(1)打开STM32CubeMX,点击“File”-->"New Project"
% v* G4 \: ^2 v. B3 Y- Y+ Y0 m% s6 E; r! r4 {* Q0 S
2399170347904e959c855fefd5877f84.png
7 D" e  H8 T+ {) _! L8 c2 d! `
! i6 ]+ H, t. _; x
(2)等待打开主芯片选项界面(大约1分钟时间)。! r; f3 i4 `1 g: Z8 C# J7 [' Y
( ~/ q+ D0 L8 D  e4 V8 f6 \
d74d2fdc60c9440483e2b7cf8d928e7f.png
% o0 P. E, K4 x1 k3 @* C
- e% e) L& h: a(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。, Z& S% A$ o* G5 s1 R

) c9 }* R  B* e
7b80345238d74bea82ce70e1a348f7b4.png
9 r. w( h& q: t' u3 P' p( @5 D$ L# \1 [& g+ ?
(4)选择时钟源。: s1 `; y0 |! J# B* f# I8 n
(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。
: {8 Y/ W% @  d& I(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。
9 }2 j3 f! p, N/ d  e1 ?; W+ C/ ]" b( f
72119b971f62410fa8344f7f9fb9f389.png $ T2 B1 P* F0 g5 \, Z  Q

: F1 }1 l9 C  c- k: o2、配置GPIO控制LED
% O0 }% f# z' S5 u7 L(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。, ?. X) o( E& ~% Z% Q
鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。
" y4 G# W/ H, P. X# x; W8 i4 b  I( M$ q- X& d
492907c1e71149819adbaee4516a2af4.png 2 m7 C: d3 v: m# Y" P" v  L
7 l3 a9 c: ]% a, p" u
(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。: }/ y& x, H: A# k' {. L
7 y; L& q7 m1 K2 q5 f
38ff4b80e1c5495ba3076a5158fd91fa.png 3 H! h/ w. e. ~7 `  u9 `: @

8 Y: _" z- f1 C1 c3、配置GPIO读取按键KEY输入

( ^5 o& B( ?. D- d6 Q0 W! h: j(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。
( @5 Q, ]+ S( m' f鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。
' i1 Y/ ?- l# l& J6 `; g( E
8 G/ X; z( I- T' \0 u+ z3 {
b93c885fa440486bbff1a8376c8cffc6.png * Y4 d" z0 `1 \6 ?
1 @5 N7 `* }% T3 U
(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。
: x0 V3 ~; P+ t6 `0 f7 ~5 |备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空); j2 T- M" o4 O9 g& ?

: J$ O; a8 l# g! x, D  T5 I* G( `
f4e6e85f697f4679aa2fb02ca9ea9c5e.png 5 N: r$ S, \( V$ M/ h& Z1 g

2 A% R) N! d. R- N  i2 \ 4、配置项目工程参数3 ^9 {! ^- V, e1 s/ w# S
(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。7 _7 T9 v$ {5 F. V
. Q* c# @9 L2 N9 w. I
2ce1933c10484d819234682f4abc0228.png 9 J; j9 Z! [2 w) r: g

% Q; H7 k; M* i1 x8 |- Y(2)完成配置工程,并生成代码。
" U; S) y" Q( T: ^+ r. W! ?$ s1 N3 o$ R4 l# G% ?; E
efdb616174f54925b6eac31109f227b5.png " V' b" r; V5 P) V& r" ]* N

3 J3 w3 I( l9 U  H, k+ d+ F% v(3)生成代码。, y( P7 s5 f  X& R4 l
7 i8 \+ m0 V0 ]' [& ]/ j
8eaa7d0babea40ee93f158481a6ee471.png
2 M. D4 W3 A4 X- t! x1 b4 {% o
: F% i3 ^" J' o 三、在KEIL 5中编写代码
# \) o' ]2 p2 F% M' f. S1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。
; M3 W8 m9 ~; I: S8 V' O  L3 R8 i
% v* Z' s% x& K
7c13d48b987a444295903e7ede4e32f1.png - P% [/ k& L+ y0 ?4 X* R
6 m9 X2 r1 D3 s- J: Q% ?( A
2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。: M9 ?7 E$ N+ e$ e. a
1 n+ V& z- g3 b# p% Z' u6 E9 T
备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。0 K! a) o# ^9 j7 G- I
7 o: }& B% ]# L
7375ae51eb184b40b06a90f83ac10604.png 6 h1 Z% m  j" \3 c; C& ^, M

' }: z2 {3 A# H& |  R7 q3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。
2 R3 E  h5 ^; P, U
8 Q9 G* T% s: r/ K/ i9 @: Q. L
edefb6b9a2a14be3b1221ad6d5c7a8a2.png ! ]; P6 n0 }/ V% c; U/ K
4 ^, z+ c, l2 @4 q, l
4、点击Download(或者快捷键F8),即可下载程序。1 Y9 z# E) E* i( E+ ~

& V8 G* |9 v5 Q5 g( U( w
ba221842d5db40808aa129dd83c593d0.png 6 G, j& K, }0 j6 a: B& }3 I
0 U) S' _. e8 Z5 k3 m8 E: c# h
5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。. c5 Z2 F; A: F- b3 G2 F
! _, R3 l% w/ r) P8 x# z0 n5 w, L' O6 l
9f8aa1a4e8f04041bcf5cb183facd100.png $ c$ q( V+ W- o/ F+ f8 R" d4 }

* {$ w, }' q7 @" R) j————————————————9 n* b% g/ d0 P# _7 z
版权声明:智能小屋ZYXC; i: r7 z) ?% Z5 h+ k; M3 w) q
5 d" i' \( H% l& N1 ]3 z% _' h4 O
收藏 评论0 发布时间:2023-1-15 00:07

举报

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