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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍  p( C+ ?$ a" z
STM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码3 o" {; [# e6 G' ^. ]& Y8 v
9 m8 Y: L- _9 ]2 D8 y
20201222215326788.png
7 N2 g8 j) Z# N0 E" V
4 s9 w8 V. L. c# Y) l) {
STM32CubeMX新建工程
: T# E3 ]+ K- @0 M" q4 D* a/ A打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作
9 F& S2 z8 y7 A: l8 J& F
  ?4 d. D: R/ `; V& n
20201222220528643.png
( R6 c( `! K3 S1 A5 N4 Q# ?2 s
+ i4 x: D* _# l2 _, ~; K+ e3 M9 U
20201222220539221.png
7 T6 `7 E% V8 _$ R4 q

- l$ Y, t9 F' D& P' e% n& C时钟配置
7 b: p  R2 `( n0 s+ X: i/ \STM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可
% c& b- n" z" i0 R1 X% @2 Y
20201225095249146.png
3 Y+ T3 P0 E9 k# e9 \
& B+ }& R5 k& i+ `! s
LED配置! H0 P) V, [. a4 w6 T1 [7 P5 O
原理图: S, q( ^  j) {1 u. u( g% Z, Y! }
通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。
, c. R& S# p$ S- \; H+ Y2 d7 ]- R! Y; _8 z+ M" g/ L2 s  n- e
20201222220354981.png
) ~$ U  P4 p! H  ]' r
1 `5 j$ ^" E, S- F
CubeMX配置) J" B1 O* \9 y) o0 `' X
选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发/ u" y2 Z6 I! E, H; x0 P
  1. #define LD4_Pin GPIO_PIN_5
    7 n6 Y: w  B" ~: E$ v4 N) Z
  2. #define LD4_GPIO_Port GPIOA
复制代码
: {: @& i7 }. f  M0 R
20201222221551594.png

: L* |/ z- ]: ^# Z% S9 C* l+ _9 z' K  n" _0 j, }) A; x8 {9 B
1 K: H! Y0 V0 V
按键KEY配置3 \7 f$ ]$ {5 z8 f
原理图0 y* p( V+ c, g* A0 }1 L/ F
用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键2 z, @) u/ G4 F5 a8 Y$ ^

& B' r! [7 O3 n6 Q/ f, d" s4 _( s
20201223092559439.png

- w: e: G% `9 \9 V4 v& a* G8 q$ G5 v8 q
CubeMX配置
3 @' {# R, s0 N. h) w选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断
. N7 M* Y0 |' ?# I6 Y; x  A; ]+ W+ w4 v
20201223092945435.png

$ s/ m+ d4 \; o; y0 k" \* g% z! P, u" a& u: X
20201223093339683.png

2 e0 H! D. }$ I6 z. K8 {
0 d' A1 K+ w( h! A& W生成工程( P+ v8 v. I# ~
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5)
1 v! z# k4 F" ~
4 g0 a+ u5 H& s2 p
20201223093534190.png
7 j2 J0 U% l1 b( J0 U0 p' _/ I
( T5 M0 O5 O* O. y" G- B; N" A- ]
进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可! H6 e4 i8 D$ ~5 }  S; `7 t% s

5 {3 M& B  T: A  }) q3 E: m6 m
2020122309393591.png

5 h; |! q5 M0 E7 }' x
& Y6 m: N8 F* Q添加用户代码
) K- W1 g* L% K1 f1 X9 \! o打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码
0 h- n# j# Q1 a1 a8 g2 ?
8 X' P; r. q: z1 o' x5 Q! U
  1. /* USER CODE BEGIN 4 */1 c& L: h3 f2 {% s5 @
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
    7 I  {5 _& A6 t! Y7 r' v# v3 g
  3. {
    ' ^  J. Y' a: A0 k/ S* Y
  4.     /* PC13为按键,按下时检测到低电平触发 */4 ?, L* E" O0 O! d  g9 v7 s
  5.         if(GPIO_Pin == GPIO_PIN_13) & ^' c) F! I* d+ [. j
  6.         {
    7 g1 V/ k( U$ }* k  X' w4 o: t! g
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */
    4 g2 k$ R! g: H% E* z( l( G7 `
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);
    5 @' c# G1 {! I( [
  9.         }/ B4 J8 r1 s$ J* s! T3 f! S2 W
  10. }1 x6 F( |" F5 ]/ V2 m
  11. /* USER CODE END 4 */
复制代码

8 x' W7 A; e( K' X. _实验现象
+ p3 _0 W# J) U" R* ]编译、运行、下载后,现象如图
' M7 m1 R# B3 f- Q) H5 _
" Z2 l8 ~2 Y6 L  }
20201223100221426.gif
7 t. L- i  `* f2 L# O- H

* S* S1 ?' E3 T* }! n! @7 O7 W
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版