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

【经验分享】stm32 CubeMX配置按键开关灯

[复制链接]
STMCU小助手 发布时间:2022-5-22 21:00
前言
5 \: D7 e1 X/ T: o. ^, P1 }0 G+ z一、CubeMX配置

4 t$ W! \+ |& d7 I1 G+ WcubeMX配置大家可以参考下面文章,这里我只讲需要添加的地方。
, L0 {+ Z: w! ?# V6 j6 B' @
4 _- B0 \' f& D( I V}57~PO{`[[56}AU5_$`F{G.png
6 n3 o$ |' v. @" G, l) W Q`AZWE01SZGGX{1W29QA~]B.png
& m9 R4 }, A3 @- W% N. z
8 Y& s! L, `( V( S 4R(G02QM80YBQ_W91}LBYEB.png
& V5 z8 X. v9 T4 D! ]/ z% l# O3 H7 [8 z+ o9 y* ^. |

- i4 e- q! D9 k% R: w4 v按键GPIO口设置为输入模式,由上面原理图可以知道按键在没有按下的时候电平状态不确定,所以我们应该给按键加一个上拉电阻,在按键没有按下时GPIO电平状态就为高电平,按键按下时GPIO电平状态就为低电平。, Y: ], O/ R( e  F- F) z

* ]: {  E0 A# B' f7 G二、代码解析
9 V$ A7 Z9 I3 T& A3 B, h
  1. void KEY_Scan(void)
    ) f5 b( `# `% N# v# t1 x
  2. {
    & w$ i3 Q/ p! Z/ [6 n6 G
  3.   if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))//读取按键电平状态
    6 x- j3 n9 p  i! R
  4.   {3 ^" H) t/ e: m8 w" i' m
  5.     HAL_Delay(10);//延时消抖
    7 h; i8 e) W$ j  F5 d; ?* B" o( P
  6.     if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))7 `; q) j: {9 F, `
  7.     {
    # {' U' x- t) E: p7 N; b! M
  8.       HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//按下一次电**转一次
    : L* I2 G7 a0 s& i! N7 @
  9.     }
    % Y6 T$ ~' n" s1 X7 a/ T8 \, D
  10.   }
      t9 U9 q; [0 r! v& b  l
  11. }
    & I! B5 T/ r) R6 S( ~7 ~# K

  12. 8 W( s1 a) V0 S5 e  V& w
  13. while(1)' z: A  J- K$ e8 \* y2 K4 I
  14. {
      l& P5 H) t1 X, E
  15.         KEY_Scan();: |) Y- G$ |0 s$ E
  16. }) R8 [+ w. o& N2 r- ~3 q( S- X

  17. 0 ?7 V7 I6 K6 ]+ |6 b& @& r* ?6 C
复制代码
# G% F' {& z; m3 x5 ^4 j
总结* S6 t0 L4 L8 q6 J+ x: ^5 G( U$ T
大家觉得按键是不是很简单,看完后可以自己练习一下。* f! `3 T! [+ h: w8 |

) [# X/ `9 v+ j; t+ w1 ?
( d6 D3 m7 f1 `
$ k5 \% b$ D3 ^, Y5 k" j3 _2 X$ F1 q
赞 收藏 评论0 发布时间:2022-5-22 21:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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