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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍9 t2 Y3 l: e  |( C
STM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码( H  S; b3 o/ L& V, r) X3 I) }
6 ?' X0 a0 ]6 j- k" l
20201222215326788.png

  I! e. W2 a" y: k6 B" Y
, \3 C  X; \: ~( F3 H+ N; pSTM32CubeMX新建工程
. w7 ]; a  K7 v6 w打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作/ G* y" P  C0 Z. R/ v9 U. p8 n
# `9 w0 {- A6 L
20201222220528643.png

6 Q" o  h4 O  O# ?2 V9 q0 M# Q# d6 Q& x, F
20201222220539221.png
; k# S/ c, s. H7 n  _4 [
  ~1 Q6 S4 D! C1 h, X
时钟配置! Q0 M0 k0 H- Y5 W4 b. s
STM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可
. r: Z4 G0 z; g: g
20201225095249146.png

8 s+ U7 m; y, ?, |& F5 e: ?. S+ [
9 I: T1 A$ r% b3 x4 cLED配置
% X  L% a5 B0 s1 l/ t3 }原理图
$ {0 R9 O  _  f* s6 e通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。
1 @) H' }4 i+ \
( `4 X5 h, H+ A6 Z
20201222220354981.png
' ]( R4 }/ V, t% U# m" d5 ~. k
# m0 h9 S% m$ O) `; E# |( u
CubeMX配置
4 v( i: N. g) A3 t9 y- R选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发
* B: E" `7 ^- }8 H7 o- Q- L6 l$ M; V
  1. #define LD4_Pin GPIO_PIN_5+ }( U. B* D! s) S4 T
  2. #define LD4_GPIO_Port GPIOA
复制代码
! d  q3 e! E2 ]  K( l7 p4 V
20201222221551594.png
* ~5 `" b( X! L7 B4 O! }/ s# c

) ~& i) h) e7 T% X  W: q: p1 q- h; c5 \
按键KEY配置
+ B9 n- w2 K& _4 x* ?! |原理图; J9 X0 }0 d5 h7 V$ g8 S9 h
用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键' R! S/ X3 c) X6 ^' J4 l, [

2 \, k$ f2 G$ R* f
20201223092559439.png

* c/ ~5 \" h# H# v% @
& d( Q! }0 a6 R4 sCubeMX配置
" r" w! _7 `5 D9 d2 ~  y+ f选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断
9 F7 U' s) ?; C2 I& `9 c
/ j# W. D, X6 f" F" A9 L  ^9 T& V
20201223092945435.png
+ B, E4 h, c: |( R& K! b6 }$ b
3 h( A& A, e# q9 j; F( [
20201223093339683.png
0 G9 M5 q) d$ ?

7 P: I/ ~! b$ M3 Q( k5 e生成工程& Y! Z; ?$ l7 n$ }9 L1 ]# H! e
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5)  X( I7 W1 a3 ]. j

8 O; F# A% @, G6 L! ?. O
20201223093534190.png

' ~) l, F2 _, @; }+ f' G1 s" D
. z# @" M$ y; @4 F& J3 f进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可
, O7 T( J$ \# `2 p7 A/ j7 @" d
3 _4 C( Z* P: }& |/ |5 h& u8 Q
2020122309393591.png
! S: W* K1 B/ ?$ u

6 f" x" H5 o4 Q- V' V% `1 k& P添加用户代码0 U2 d$ t) r' {9 }1 @. Z0 m
打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码6 u1 W. P) r- i! H

% S: c' n4 `: K8 m5 K
  1. /* USER CODE BEGIN 4 */
    ) ~( s& L; e' z; M
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
    / F) x3 n8 _4 ~* v! f, u% Q3 Z
  3. {& P; J, K0 }4 N) p" g+ B- P
  4.     /* PC13为按键,按下时检测到低电平触发 */
    & z) w$ R5 Y; [( Z7 B+ i$ D
  5.         if(GPIO_Pin == GPIO_PIN_13) 3 I  Y- d6 U+ b+ X6 A8 i  \- c3 P
  6.         {7 A- D& U: y* X1 h$ v3 f3 F
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */9 z  L/ g9 N) J$ E
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);2 F$ ?1 q' p0 J6 l$ g/ c
  9.         }6 y2 }* H; d4 g& j" q
  10. }! |: c+ c0 n& V
  11. /* USER CODE END 4 */
复制代码
  K1 _' b7 L9 f5 X
实验现象
( @$ y2 L# F# A0 v编译、运行、下载后,现象如图
+ y0 {- w8 x' b( w% @3 m
. h" u* `! d' K
20201223100221426.gif
7 q+ m, T4 f- M4 B0 k; u

# R4 E# O9 x" ?# P
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版