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

【经验分享】使用STM32G4 ----按键的使用

[复制链接]
STMCU小助手 发布时间:2021-12-8 21:00
1.按键电路原理图
5 d8 j5 l$ P! a" }8 t5 a' k: @/ ^0 Y3 r3 g. ~2 B& o+ i4 S1 n
20210424110359377.png
" I; Q  L' E  t! `

/ m  ~, O* m0 G2.使用按键控制LED亮灭

& |% z9 z2 ~( P( k
  1. GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);( U) ?& j9 t% ]3 t
  2. //读取pin的状态值,然后返回
复制代码
  1. GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
    8 {5 W  h$ F2 x3 e& |: Z, D
  2. {5 [. W* K7 v/ {6 A, a" y% F
  3.   GPIO_PinState bitstatus;
    . A1 D1 C2 `: B
  4. , x/ l& U* g# h+ U
  5.   /* Check the parameters */) J$ B4 h6 j# ^8 B# e
  6.   assert_param(IS_GPIO_PIN(GPIO_Pin));1 C9 J) E, R/ {. s" A$ @% f: {
  7. . h- Q0 w9 [' e
  8.   if ((GPIOx->IDR & GPIO_Pin) != 0x00U)* ^5 Q9 i& A* b7 e" z) W
  9.   {
    , q4 p! _: i4 L& P
  10.     bitstatus = GPIO_PIN_SET;
    , O0 j' d! w5 D9 t
  11.   }' H! |' o" I" I6 ^! q
  12.   else
    1 ?& Q( j  t* Q# i$ N3 R
  13.   {' o( M( W- |- ]4 u9 m
  14.     bitstatus = GPIO_PIN_RESET;
    ) w1 c) B3 e7 n8 l; M
  15.   }
      N* k2 D6 P9 Y0 J: ^3 C6 x) T* ?9 I5 A9 d
  16.   return bitstatus;9 K# m# I- r  o& y6 Z
  17. }8 A) ~% I  }& |% y3 F/ P
复制代码

/ W' V& f) v6 M& s% [当配置为GPIO_MODE_OUTPUT_PP时,使用HAL_GPIO_ReadPin()可以正确读取出这个pin的状态值;; R( ~; w3 z; L2 _
当配置为GPIO_MODE_OUTPUT_OD时,使用HAL_GPIO_ReadPin()是读取不到这个pin的状态值的,无论这个pin设置为SET还是reset,读取出来都是reset的状态;3 y; m0 t( c4 ^" ]) C
  1.                 //B1
    0 g: r# Y$ n) S+ b7 Z: ~
  2.                 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == GPIO_PIN_RESET)
    5 O+ Y7 R+ y" R/ q- E( d( l
  3.                 {  _4 f) `, G; B" l0 O1 w
  4.                                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8 | GPIO_PIN_9, GPIO_PIN_RESET);
    ) o6 R, h# O% {! K' ]3 P
  5.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    5 z* B4 y' k9 ^+ U5 r# C
  6.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);" R, [! `( Y/ k4 O& J- ?# r& M
  7.                 }# V  J( T* C3 n% W4 d! ?
  8.                 7 K2 I, Q6 I: e: N
  9.                 //B2" ]* D# ~# T- m+ D: ^7 u. R% }" x
  10.                 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == GPIO_PIN_RESET)
    # w" \: s/ Z) O
  11.                 {+ e* z' _$ R& M
  12.                                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_10 | GPIO_PIN_11, GPIO_PIN_RESET);( T6 ?+ F( b+ ~
  13.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    * j( A4 S2 f) |6 a8 ^
  14.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);9 p" Z6 i. n6 w
  15.                 }& E8 \) ?5 s$ d5 s
  16. //B3
    4 M5 {5 e) n' Y$ Z9 C
  17.                 if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == GPIO_PIN_RESET): O/ o- d0 D8 D0 j2 k9 u
  18.                 {
    5 |6 C" q+ d! U& A8 i
  19.                         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_12 | GPIO_PIN_13, GPIO_PIN_RESET);
    2 S* N# K! D7 G, S; F
  20.                         HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);" k% Y1 W1 G) c! n$ t  T
  21.                         HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);" x# S( B  U4 u# G! K' H
  22.                 }
    6 d: x; f) G1 m8 n+ u! H9 D$ u
  23.                 //B4) I7 r+ z! g; q; Z7 P8 {, g
  24.                 if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)
    $ m# a: q8 c- o" u
  25.                 {$ h0 |6 h7 P& _! j2 _8 f( M
  26.                                 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14 | GPIO_PIN_15, GPIO_PIN_RESET);8 L! i% I: u: s3 f; X
  27.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    , e" }, ]2 _; n6 Z7 l
  28.                                 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);! s& h9 F1 M, D' F8 Q5 Z
  29.                 }   
复制代码
% z2 E$ V" L4 u, p9 X
            0 G2 S0 C  [2 k3 P' O
8 r  D) `( a7 `. ?+ C
( S3 |1 U6 _. p& w4 J
收藏 评论0 发布时间:2021-12-8 21:00

举报

0个回答

所属标签

相似分享

官网相关资源

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