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

【经验分享】【STM32G0】按键控制LED亮灭

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍8 _" W9 Y2 c' g+ f7 \# g
STM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码: f5 G/ Z" d/ a8 F2 j

0 m1 O+ z' y$ |6 f& s
20201222215326788.png
9 F4 z# ~/ c+ i2 k, K
0 R3 x* ]* y' g4 o
STM32CubeMX新建工程
) T, H2 w5 ~3 A  Q打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作
: W4 m9 m' h- N1 j7 ]1 |2 J
! f( ?+ c9 p5 I, P0 {! ~9 h
20201222220528643.png
0 {% h4 Q& W/ p; p* F
/ ]1 X0 t5 n: r/ _
20201222220539221.png

7 t* x6 ^. {+ {. f3 Y4 R
# e$ M- _. n) c( k: }- W时钟配置% |% R% C$ V% i4 U) _: z( }
STM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可
6 c/ Q1 X' u/ w; X4 H* a
20201225095249146.png

2 T0 E( y' T" w. O
$ @0 T: R7 d) {" w8 dLED配置
2 g( s, n6 _7 R0 a3 M, m原理图$ t1 L6 w9 I# _2 N: y* O' q
通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。- m' l( U5 }# Y" g/ H  F2 a8 t) A

- W+ {7 y) j3 @1 \( v* o
20201222220354981.png
8 l% n$ m1 O8 A. O

2 w7 Q- p) B- s& g( k1 X, N! jCubeMX配置! S% z+ A* x' u$ q  J& @2 a
选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发
* B) z' J3 X, l* X5 v7 T* I
  1. #define LD4_Pin GPIO_PIN_5
    % e- H& T5 Y3 k. Q$ F0 t' M" B3 F
  2. #define LD4_GPIO_Port GPIOA
复制代码

: v1 T8 |9 s4 e, d' m7 Y
20201222221551594.png

! `3 D9 ~& }( K
% ]3 c5 U9 k! x# k$ \" n& e& |8 S, x0 D$ I4 W, B
按键KEY配置
% B  S, \- o0 C3 n: f; v  V3 ]原理图$ b9 @) ?4 N2 `1 a' W
用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键, r: q9 q* b8 Y* E7 g8 a

2 q4 O5 r+ F/ i% g6 o! D
20201223092559439.png
+ `9 V' Q5 K; ]5 @$ j
3 ^) i6 `& F& X0 p
CubeMX配置, N" ]( ^# Y5 Y' N( l$ ]! j
选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断
2 e4 X! t, k! s% z. w2 r2 j& {
+ H; \" g9 z4 b1 |2 @* H' L
20201223092945435.png
2 t- K5 `  b6 A; S* p4 K
- q6 B- \5 r8 Z/ O! o* `+ `
20201223093339683.png

% \' R- B$ R( j
. g2 L* s9 N, O4 C: L生成工程4 B) \# Y5 c/ j, T5 |
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5). n; v5 X' Y2 G3 F. Y$ Z% }# G
$ V1 `0 l7 N, v8 k4 j/ P
20201223093534190.png
5 h2 D3 o( y5 V+ b; b

. K) x" {( k* _! W0 i" [) \2 t进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可9 g$ C8 N- i" r; Z/ @4 K

7 e, k% ?4 g/ v# o: l
2020122309393591.png

$ ]4 A5 x( J$ B
9 V& Z4 H! C: @# a添加用户代码! a/ W7 S* i, y8 Q( X$ C
打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码
, C" A  Y' Q7 a, ?& O! G/ \1 i9 m8 X+ j$ ^! T' J# G
  1. /* USER CODE BEGIN 4 */4 N5 H, B$ |! J7 c5 G
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
    3 R0 a! M6 ~  B( F
  3. {
    0 e  P8 X; ~& D8 r( E
  4.     /* PC13为按键,按下时检测到低电平触发 */# T9 c, S! k1 D7 \
  5.         if(GPIO_Pin == GPIO_PIN_13)
    ) H- Q5 ?/ D$ L/ t! g4 W
  6.         {2 E9 `, n! [6 u8 L2 z$ ^# O2 x
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */
    # _* ?; P) l( ^$ R# ~, j/ O8 v
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);
    6 k( ^* B. i% [5 c
  9.         }9 ^+ ~  Y# V' U) A! B" n1 O& R
  10. }  c1 c1 v  \/ |0 C' J# R3 w
  11. /* USER CODE END 4 */
复制代码

/ c; e+ }, \& M2 h- s# G实验现象3 T) G8 I# E- P+ p* O7 O
编译、运行、下载后,现象如图' k4 ?4 K) T+ a+ j/ n' `
( [  m( {5 A; x( y
20201223100221426.gif
- i+ F) N- [! j  J+ s

1 }. C! [7 A& J- F; k# x
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

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