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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
硬件介绍
% j4 M' o7 p- y( J& ]" A7 B, XSTM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX图形化配置工具生成工程文件,并编写用户代码  i, I* D" v0 g, O: N

/ z" \- e/ Z$ q/ f. K" |: X
20201222215326788.png
7 A$ @* W, J& k

. D7 |4 B+ ]& F5 R3 cSTM32CubeMX新建工程( l& m2 S8 x  H: u( @) f0 N
打开STM32CubeMX,安装所用MCU的工具包,再按图示步骤操作
! Y7 c/ Q+ U  x4 D9 _6 i3 B, Z+ l* H' t6 O5 m3 V0 a
20201222220528643.png
6 l) v: s$ ~2 |! S6 M+ Q
) q/ w# w, H* s& ^! L
20201222220539221.png
) U' i8 a" u' j: M+ a  Z6 e* z
9 V: A' ^/ H* s4 x* C1 w( Q
时钟配置' G" n. h5 t8 E) u
STM32G0系列内嵌高精度(±1%)RC振荡时钟,无需外部时钟,且只需一对电源供电,直接将时钟树的HCLK配置为最大64MHz即可5 ?7 |. t1 D% h5 z; W; x7 p
20201225095249146.png
# Q6 Q) P. J+ X8 P% O* b

& P" S8 Q8 m6 e9 @3 Z' nLED配置
( l1 _/ J; ]0 f! z  k3 J1 ?% H原理图
6 \( d# q5 E4 i# z, n通过阅读用户手册和原理图可知,LD4为用户LED并且连接到STM32G070的PA5引脚,输出高电平时,LD4被点亮。% B$ L/ q' r1 r/ |( H+ W

% V# h* l9 U" c* m$ g: Q7 F
20201222220354981.png
) J# y0 t4 |; A; _, ?  t

( U' L' O1 U, {/ B9 h1 X* H( wCubeMX配置
4 K6 g# d, K& Y选择GPIO,点击PA5管脚,模式为GPIO_Output,User Label输入LD4,输入User Label的好处是在main.h中会生成如下定义,方便开发) ]8 ]) i% Y( B' o* I) q/ H$ `. P
  1. #define LD4_Pin GPIO_PIN_5
    8 N1 V- t6 e/ Z
  2. #define LD4_GPIO_Port GPIOA
复制代码

' m7 T; s* x7 H+ A& |) X  i
20201222221551594.png
" ~1 }. J% X# |2 f
1 u4 C1 D0 M; H& ^- s" Q% m4 B
+ A8 t2 U* z4 a1 L8 d
按键KEY配置
+ O, p" ]/ ]4 W6 X原理图6 J. R1 U3 I& d+ K+ y/ U6 z/ {& P: [
用户按键B1通过上拉电阻R29钳位在高电平,当按键被按下时变为低电平,因此可以使用外部中断下降沿触发来检测按键  I) b5 y) H. e% Z( E+ i0 L
4 h* r* ~) n8 l
20201223092559439.png
: d+ x# j- F1 K7 k

  N# T- S3 ]+ X% J4 p* P4 t" Z: tCubeMX配置
8 S. B4 L9 d$ c5 W5 j1 p, I选择右侧GPIO,引脚不好找可在搜索框搜索PC13,单击选择GPIO_EXTI13,GPIO模式配置为下降沿触发,最后使能外部中断
- Y3 ]2 v8 P$ E. }/ o; q; s3 B, l& Z% Q  l
20201223092945435.png

" _5 P9 Y. m. e* C7 H" x" ~$ L* Z( T" v. [* C
20201223093339683.png
! q% r4 Q; o  T. z( j& h$ e

, v5 k; S  k2 V' _生成工程1 l  i4 L, n. c4 u0 b# W. z
进入Project Manager,点击右侧Project输入工程名,选择开发环境MDK ARM V5(即Keil 5)3 z6 \2 b( j/ U$ [5 O$ ^$ k3 B' ^

. @* G) `9 e' ?4 D9 X1 i5 R
20201223093534190.png

% l& X+ k/ c; @' [1 x: i7 m1 c7 J* V1 I. p. P# L( ?
进入Code Generator,勾选为外设配置生成单独的.c/.h文件,最后点击右上角的生成代码即可
" Z7 U: J" \, K2 k2 M0 n
: O3 `% Z! Q) a6 j; G5 v
2020122309393591.png
9 x1 F* T0 ?) g

) ^( Q% w9 [3 [" m0 [2 ^7 }添加用户代码4 }+ W: K# N3 l; T1 `$ ]
打开工程,在main.c中的/* USER CODE BEGIN 4 */之后输入以下代码
& t2 B# ]% j+ K0 A4 f! K
- h+ N8 L4 k7 C* z: B+ z8 I: p3 f
  1. /* USER CODE BEGIN 4 */5 C( A8 G. M2 K. t9 A0 R8 I
  2. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) ( c- ~% ]; w- I6 B4 L/ Z. L5 ~
  3. {
      z+ k3 o" H2 r+ I
  4.     /* PC13为按键,按下时检测到低电平触发 */8 z' H( d3 f0 p) v
  5.         if(GPIO_Pin == GPIO_PIN_13)
    : ~  [6 Z( q) G9 v
  6.         {, ?/ l( ?; ]$ g; c
  7.             /* 翻转LD4的电平,实现按键控制LED亮灭 */
    8 J- U- N+ n% L7 y
  8.                 HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin);& g8 B' t2 i/ @3 B- v& o
  9.         }+ h. K7 _, l3 p% o' U
  10. }; ]/ K) ~# D: i/ z' z! q. j5 Q) {
  11. /* USER CODE END 4 */
复制代码

& f* ^5 l" X8 Z- w- L; o实验现象
" l& Q! E$ o& F8 V  V9 Y' s% M0 l$ w编译、运行、下载后,现象如图4 a- p5 T# G5 i$ K* D
3 f/ l: T- o5 W( O, v/ d9 Y* c
20201223100221426.gif

2 B. J, J% J7 H! F8 ^; u: a3 a3 S
赞 收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

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