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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍
- C) M3 p  d" J. o" @3 C" n/ tSTM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码
, `8 ?- C* J' x1 Q+ j
$ U8 O6 e  }3 h) a5 }; W/ X: L
20201222215326788.png

# D! v) a8 b1 X3 \$ ^
/ b% p) D1 T* }3 }& K2 A9 wSTM32CubeMX新建工程
' I/ Z9 \# j- G6 P9 Z打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作% O  v, [+ E% e/ m+ Z# s. ?4 f. Y; t6 T
6 B) }" Z7 N( r4 u8 h$ L- N  M
20201222220528643.png

# b0 Y$ U3 l! c) C0 e/ S8 M. F% `
' T) s% z$ d/ s$ P, |
20201222220539221.png

; p; W) J4 ]. `. {/ D0 I7 j+ W! K$ M  _8 Q
时钟配置& d+ Y* H9 K2 B( ]
STM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可
8 ]* l$ I% N, W
20201225095249146.png
. C+ P2 A9 k: c  p
/ A4 g0 j0 O% E" N) C2 p
LED配置
& d/ H( D: G. d3 }0 f. h4 B# }; T, K9 m原理图7 |! w8 h% H5 M
通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。
1 H% _* `; y$ a% `0 n# H. n: P. a7 M) ~* \7 L4 Q7 a3 Y: g$ _: z  Z
20201222220354981.png

5 d. O# R3 |* y- e0 h% t! @* n$ G* w
CubeMX配置
% ^3 b" J9 _9 k% b  s0 A. D选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发
! u5 z" V0 `2 k$ O+ C$ L2 C0 k9 V
  1. #define LD4_Pin GPIO_PIN_5( P6 }( V* o- j/ P, _9 S
  2. #define LD4_GPIO_Port GPIOA
复制代码
9 t8 T$ ?& N# w1 t* t5 \
20201222221551594.png
* W3 k8 V- ~8 ^6 x

2 J$ W) y2 w; N/ q- ^: n# T
8 p. C/ c& V; h* K2 H. |; |, u8 U( @按键KEY配置! D0 x8 C3 L" ^. S5 a
原理图
& ?& a. c% X( e' c用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键4 @  C; ], M% p+ C

3 _% V% O) f6 u
20201223092559439.png

* e  G8 v: M2 q1 m$ B" l- L0 e6 a' ]4 Z* D' O3 o7 ?
CubeMX配置
6 E7 x# N1 G% A3 J" l" W选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断
) h! L- V: H1 \. X: ]$ x  I
  {3 n- I5 x* X5 q+ q/ B
20201223092945435.png

- B" {, V  ?) A5 h6 {; B3 d& n& l+ i; w
20201223093339683.png
& @/ ?8 u  n  d( ]- X  R: U# H

7 x4 b$ a3 _+ j, N0 {' q! M+ v生成工程, z$ e% b8 Z( `) R
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5)$ R) ^4 l2 b9 h+ B  g4 @- ?
# t& h- D' I" u  R) U: C9 j
20201223093534190.png
* Y. i0 \+ B+ B5 ~+ e6 o' m

5 |* B+ B; i2 H# A进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可
- e5 {* D+ b. s8 u% P( T! a4 L) T6 a3 j2 ~0 g& x& {- G) R7 Z
2020122309393591.png
1 y- L: ~0 h3 e& z( d

3 {3 Z" j' ^" p8 T添加用户代码
+ D( _3 \/ q* r2 @/ [; ]" n+ g: B打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码6 E# e& D6 U! Q  I
- {9 T; E& m3 x: }7 d  C0 N
  1. /* USER CODE BEGIN 4 */
    $ e& d7 w1 u9 J( a$ Z6 L' D$ o
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) , u- }& g" h' t1 t% n
  3. {8 ]2 |: [6 [) r  S% i- G2 g! F
  4.     /* PC13为按键,按下时检测到低电平触发 */& V& r1 i. G7 Y5 S5 }# G
  5.         if(GPIO_Pin == GPIO_PIN_13)
    ; f2 w0 s( h5 y7 h# F1 x+ W2 x
  6.         {
    0 P. i7 `, u1 a$ t3 Y2 `: R% n
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */6 T  t2 X$ H" y
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);/ T) \* `; E1 U1 d
  9.         }
    # V( C0 r9 v+ v' o, J4 Y9 `$ |
  10. }
    # t. ~+ g4 L( S) M4 ~6 A
  11. /* USER CODE END 4 */
复制代码
1 Z. c; I& q0 F' F
实验现象7 D# _0 ?3 `4 o  n, u; o% C
编译、运行、下载后,现象如图
3 |1 f! z2 Y) _" F( A$ b& [3 Y  a9 I4 O3 ~9 L, n
20201223100221426.gif
  \& U, ?& K0 D2 i! F8 O7 |
* j4 b% L+ d$ g4 D- T
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版