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

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

[复制链接]
STMCU小助手 发布时间:2023-1-15 00:07
一、开发板平台简介:
8 D4 X6 ]$ J& f$ e7 l2 }(1)开发板主芯片型号:STM32L431RCT6# w1 l! s8 p0 X. j7 @' A/ u
(2)开发板主芯片封装:LQFP-64_10x10x05P
9 _0 B# e8 r3 H& r' z9 w+ U3 {# z(3)开发板主芯片内核:ARM® Cortex®-M4# V- u- j* v9 T( \" {
(4)开发板主芯片主频:80MHz* U2 h) `" p. g9 w1 `
(5)开发板主芯片Flash大小:256KB
1 h# f( T3 f6 w6 C1 ?(6)开发板主芯片RAM大小:64KB
* i) p/ _/ s, T(7)其他外设:请参考芯片手册
, S. Q: q8 Z9 m& U, v; M9 K0 @7 ~6 P% z) x
bb91345227434ee7a43a34bf3fe366e6.png ) P' z2 n" z/ A7 {+ F# l4 O5 [
, `3 R% c1 A" a0 ^% E* q, [$ g, x& {
929c0cce04aa4115a8623703982bf3e1.png
$ T7 n& T$ R4 i( V
. H3 q$ r* a( V0 Z2 e
二、新建工程
/ m; b' i/ |' X/ j: I1、新建STM32CubeMX基础工程
* ~# k( r5 e7 k  @6 i/ b
(1)打开STM32CubeMX,点击“File”-->"New Project"
, @0 {, `4 V7 z- ]: N6 P/ L* W" [+ y8 L# b( D" U. [
2399170347904e959c855fefd5877f84.png
4 v' m$ t+ q: ]5 @: K$ ^
# \* Z+ v7 Y* j/ t& {
(2)等待打开主芯片选项界面(大约1分钟时间)。) u) ^* g- }3 e
' l  \. P* h, _$ r0 ]: {
d74d2fdc60c9440483e2b7cf8d928e7f.png 8 F, N* N" H) f) P0 z' w
; A% i) T- ]5 j4 h  K& v5 o
(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处现在STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。. u* l' \' d! S7 f7 F5 G

: `- V  A7 R6 d, B* s
7b80345238d74bea82ce70e1a348f7b4.png
" f: V. A2 N9 D* m! Q
% _4 {" W/ r1 P7 ?(4)选择时钟源。
7 I8 u* y; n! b(1)因为开发板上有8M外部时钟,此处选择外部高速时钟(HSE)。9 p6 _& }+ J6 h: Q' C) b% ~
(2)因为我们没有用到外部低速时钟(LSE),此处不做处理。
1 y. g) p6 q7 p+ x4 U$ E, _. I* ~; R
72119b971f62410fa8344f7f9fb9f389.png 2 R- K* a) e) s  M
: y. G! |* _5 V, h
2、配置GPIO控制LED( o, M9 _% f5 f% K
(1)查STM32L431RCT6开发板原理图得LED1控制引脚为PC0,则配置GPIO的引脚PC0。' E# ], @( l* `5 Z
鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。& b8 @0 k0 d, C' V* Y, d

: z; E- D7 A% Y! R( l
492907c1e71149819adbaee4516a2af4.png ' W8 ]# `8 p+ G  T& _

- ]; ^, w* U/ n, g4 _(2)根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。
( h. h$ d, p8 a# X( |+ q+ c, F6 H9 K
38ff4b80e1c5495ba3076a5158fd91fa.png
% u, H% }2 ^" Y; o; s# V

6 _! t7 V/ x; o  f! @3、配置GPIO读取按键KEY输入
3 {8 i1 ?6 k3 t% g3 }
(1)查STM32L431RCT6开发板原理图得按键K1输入引脚为PA0,则配置GPIO的引脚PA0。
- r3 ?+ E& R5 {2 d2 y鼠标左键点击PA0,选择“GPIO_Input”,表示设置该引脚为输入模式。
9 U& z, A4 g: S1 I
/ v1 }6 \2 i, v4 r
b93c885fa440486bbff1a8376c8cffc6.png
% _$ I! f+ Y) J  ~$ P7 V
$ k) K6 k7 {" g, {( _8 J; O& |1 W(2)根据自己的需求配置GPIO的参数,此处修改输入模式为Pull up(上拉输入)。
: `& h: g3 f/ n8 b  ]0 N备注:输入模式分为三种:Pull up(上拉)、Pull Down(下拉),Float(浮空)7 Z8 s% @/ c, a! \9 l

" `. n1 F1 A' L  m8 L
f4e6e85f697f4679aa2fb02ca9ea9c5e.png ; `" I1 E4 H8 \5 B1 C  p: c
; Z  H+ v2 {& G# V  M% R; m, m
4、配置项目工程参数
  n; w: S/ Y3 c; V7 ^' m(1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。; _, R7 ^, B1 ]9 o9 k% L" |$ i) e

. p" b/ S/ ~1 y% C+ t: w
2ce1933c10484d819234682f4abc0228.png
) O3 a# m2 g8 \8 b6 u8 m. h4 P1 q! v3 [: t
(2)完成配置工程,并生成代码。% q! l/ Y( f- F  G; h1 F4 s

, g8 n# U1 K; u: X, _# x
efdb616174f54925b6eac31109f227b5.png - |' |" U! Y2 }: w

* i! r+ H1 {3 l, m(3)生成代码。4 {) E2 X, g& [" d# z& V: j' X

! W1 D& ?( _9 p* L8 e' G
8eaa7d0babea40ee93f158481a6ee471.png , m: g0 V  G( N+ n) o4 g
3 [2 Z* ?5 u2 l1 ], b
三、在KEIL 5中编写代码& u: Q- G8 Q( H5 D5 E. g2 H
1、找到刚才新建工程的存储路径,安装项目名称,打开项目工程。* Y# I% |% |. ]% C( O

" @* ?- Q9 j3 d
7c13d48b987a444295903e7ede4e32f1.png & A" \! v4 {) F: a9 D" ~( j+ X( s
9 S4 M# U5 \6 ], v3 b5 k
2、添加按键控制LED1灯闪烁的代码,然后编译,确认编译OK(0 errors、0 warnings)。
0 A+ ^6 v6 D6 D, X% |
, t4 G/ U* P5 d! N1 G! N5 O% Q- T+ a备注:用户自己写的代码需要添加到一对《USER CODE BEGIN和USER CODE END》之间,否则在使用STM32CubeMX生成代码时,容易丢失自己的代码。
9 z  L: b- z( x6 i6 n& p* [& f
! A* N) _9 g2 p4 m
7375ae51eb184b40b06a90f83ac10604.png + s3 o* x# C* i. {- J# _7 A
  F, Y# A! @9 }; ~
3、选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。! Y! T. \) p7 C$ J/ N

+ p! o) M+ s! U6 Z% P% r
edefb6b9a2a14be3b1221ad6d5c7a8a2.png ' _# n6 M) r- i8 X2 c& t( a6 V
. @2 w9 V& g) \
4、点击Download(或者快捷键F8),即可下载程序。3 X1 M' t, {: P' E5 `, n6 y6 E

; y3 T0 q# V6 L
ba221842d5db40808aa129dd83c593d0.png 7 _- d( Z7 v/ q* s5 o9 I
; ]1 q7 C! d+ n, S' K6 F9 X7 \# `+ V
5、 如果下载程序后,没有看到LED1灯闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。9 h1 [6 c+ H9 [$ L% t1 ]
* ?' j" |2 b; H
9f8aa1a4e8f04041bcf5cb183facd100.png 8 \$ [& C' _4 C% p
6 y4 D" S. }. n: q" ], c
————————————————
4 C& x# v. L0 f3 x4 |. i版权声明:智能小屋ZYXC; @. C0 n: R3 J$ }% ~0 D* o+ [  \
' D" U: h) S3 j1 p
赞 收藏 评论0 发布时间:2023-1-15 00:07

举报

0个回答

所属标签

相似技术帖

官网相关资源

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