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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍6 j) Q. M5 l% o+ h0 H
STM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码! O; R4 g, w; L) g7 f& Z

4 Z& j( h: i% z, C5 {( s6 Z
20201222215326788.png
. W' ?2 F9 X/ n3 h4 E2 B

( E, `7 C! r# ZSTM32CubeMX新建工程
3 g2 J3 V4 ~! L0 N3 p打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作
. _1 [/ e# E! }! w, q# j2 N* a  j! t, ^
+ m/ c1 ~* M3 \* \" t0 Q+ _0 n
20201222220528643.png
: E( T0 U0 J% \! `4 d. x5 p
# R" z0 e: U7 q; b
20201222220539221.png

" p1 c! G& X+ W
: S3 Q8 ?0 g2 f. U, `; m; O( v时钟配置
; X, v" p9 s* V0 n/ z' Z5 ^7 PSTM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可5 h5 o' X( e7 U: U' i+ V( o
20201225095249146.png
2 n% n# N+ O6 G/ A; v8 ~
5 ^) [3 S) Q) ^( n! t. o
LED配置, T6 A) @% c! y8 E
原理图
. O/ I2 ^2 v3 H( F通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。8 K; D& z" P. _- G# C

) e. P/ o- p* j( X+ J8 w4 h
20201222220354981.png

; J' I1 g. p  ^8 C: }5 F5 s1 y$ y' T( s: Y2 R+ E  I
CubeMX配置
7 D4 i- r6 y- I% n( }选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发
5 T5 W& T* _4 u, ]
  1. #define LD4_Pin GPIO_PIN_5- @' G/ G. b9 A$ g# C9 S* p
  2. #define LD4_GPIO_Port GPIOA
复制代码
# N* R- O1 N+ C: `0 t
20201222221551594.png
) u3 m: H0 ]3 r8 p2 c
* I% k6 Q. e' X7 g$ ~

  P+ ?" t8 l' ~' w  E! Y. \按键KEY配置; i/ p4 s$ ]4 W. F
原理图
; v' |" |) l! _, h& R5 ~9 K用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键
& X# c9 Z" t$ K. D" d9 M' v* n0 k, D
20201223092559439.png

/ M1 X6 c. C  S$ {; E6 b1 C! c- D( |. [
CubeMX配置
/ h7 l/ [# j( s: P: ~- V9 f选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断8 M* C0 A% k) j! N3 J! X! Z
* q& ]2 D, W, H& Y3 K) z: U. x
20201223092945435.png
, u5 b& H. V! r- U, F- @+ C
# A. S0 s$ [% L
20201223093339683.png
  H/ @/ D4 K1 C. r& [3 ^% a: N' n
! ^* G9 ?. i; @! R! k: ~
生成工程- B7 t. C& V6 y5 G8 d
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5)
5 ?; ?( e- f3 M& v/ \' e5 _
7 Z% H* C9 T% X, m1 u+ M
20201223093534190.png
3 d3 i. [( H. C/ T" L1 N7 N' T

' H3 ]* V0 J$ P2 U进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可' z, [2 c- ]2 P6 ?( q3 Y" H! G

1 w+ S: R! K+ A2 T' f8 Z
2020122309393591.png

0 r0 V0 o  K$ m( x; L$ X  s: S+ Z! [1 O! z# {7 o2 j1 a. E
添加用户代码6 |5 ?& E1 J" W; _8 q2 {9 s9 L
打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码, C0 H- H& y+ R/ N1 T

6 J! K# Q  @* R) k2 \* q, L- _
  1. /* USER CODE BEGIN 4 */
    # d& Q/ G! W# `; T( V' E
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) 0 g5 B% A/ N* }' A  h6 P8 a! u( C$ o
  3. {
    ; D) P% y' x( N1 W$ c0 }. o
  4.     /* PC13为按键,按下时检测到低电平触发 */0 M1 f% V/ Y4 c9 a( t4 `" L0 z
  5.         if(GPIO_Pin == GPIO_PIN_13) + n8 ^4 T' {6 ^. U1 n* P# |. Z
  6.         {
    : Q  L5 u" d" v7 P
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */
    & d6 e2 A- r  Q$ [
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);
    . n4 r+ G7 L: E' }+ A
  9.         }% }5 |0 S2 c* R5 |
  10. }3 ^2 ~/ r" o; c+ X/ Z2 U; ]
  11. /* USER CODE END 4 */
复制代码

$ _$ l' o" n' }+ M实验现象& n4 @- G& [& t0 x& J* X6 C: Y) y6 |
编译、运行、下载后,现象如图9 O& W" q/ G) E* W) `

2 ]8 h. h8 B1 i
20201223100221426.gif

( L( K, _9 B4 G1 p
6 C$ S$ |. T# L6 J+ t4 ?
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

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