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

【STM8-SO8】03-GPIO按键输入

[复制链接]
slotg 发布时间:2019-1-29 22:29
本帖最后由 slotg 于 2019-1-29 22:32 编辑
7 A  @0 d6 u& g  t& ?
0 E1 v- w, a# U  T) R在 STM8-SO8-DISCO 板上的使用者 LED 对应 STM8S001J3 器件的安排是在 PA3 高电位输出点亮,而使用者按键是在 PC3 电路上有安排下拉电阻。而我在面包板上的接法 LED 也是在 PA3 高电位点亮,使用者按键也是在 PC3,不过我不接下拉电阻而是配置 PC3 有上拉电阻。* T0 A1 F" ^. v& f2 Q

& t; a2 @. m* V& j; _' |& \ P03.JPG ) \) B1 [* I6 d! L" ~) p$ K

# }! n4 N0 W7 y& d5 _& ^, j在上一个 LAB 当中使用到了 SWIM 这根管脚,因此程序的开始做了一些必要的设定与延迟,不过目前所要实现的功能都不使用 pin8 这根管脚,所以程序中先移除这部份的代码。8 c2 x& P1 T4 N# _

8 K5 X( Y' W9 w0 Y! ^/ k' \(一)
# y1 L& e  b9 G; J第一个程序先来实现一个最简单的 GPIO 输入输出功能,程序读取 PC3 按键状态并直接输出到 PA5 上的 LED。
5 N" R/ t1 b* w) T4 Y9 l3 l  g0 ~% z7 B
管脚定义:
# L- |- @6 g' W0 \8 e/ X9 O
  1. #define LED_GPIO_PORT  (GPIOA)
    1 M  @' p; h1 [& h( |$ n
  2. #define LED_GPIO_PINS  (GPIO_PIN_3)7 V2 s0 r' J. P3 k( y# ~" N7 g3 h

  3. + f1 |$ z: {& b! @; V
  4. #define KEY_GPIO_PORT  (GPIOC)* I0 b$ h# W4 h6 K, n
  5. #define KEY_GPIO_PINS  (GPIO_PIN_3)% Q! ?, t$ o& j: P; Q8 @. R+ ]
复制代码
4 t  N2 @5 r% P* X3 A2 v! b
main 回圈:) i: @' K9 Z* x: v+ f
  1. void main(void)
    ' [& W8 _  A$ w$ _
  2. {0 d6 E1 g- q9 _4 K6 Y  {5 l, w
  3.   GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);7 f7 m# X% R0 E' W/ n
  4.   GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_MODE_IN_PU_NO_IT);0 h" Y( _  Y$ M% V' E7 ~  }" \# n
  5.   % _0 X6 \2 P) }# O" J+ Z
  6.   while (1)
    % h0 [4 r3 C0 j# g3 q( {) z6 X
  7.   {+ j1 Y; h% _$ _) n$ C. x) {
  8.     if(GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PINS))
    9 E- J) t4 d0 C; S( f3 l! [
  9.     {
    9 @- m& `" ^4 h5 n! b
  10.       GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);- h" w- f- t7 f- a+ t0 q
  11.     }4 d9 C, s( u& T- p9 d0 g4 E$ r
  12.     else
    $ N  P2 S  }& n' _: v
  13.     {$ f3 Z2 K, T! u: l7 s0 E1 q7 b
  14.       GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);   
    0 H& M# }# ]) n+ h  c8 A
  15.     }- C( r0 E/ Q' y% F- T) a0 a
  16.   }
    - _5 T) H4 A( n+ Y" e5 j
  17. }" z) ^' ]3 ?( j9 G' c5 j' `
复制代码

, H, n' w  b0 q" g; Y$ a+ C按键放开时由于有上拉电阻所以输入状态为 1,直接输出给 LED 因此 LED 是亮起的状态,按键按下时 LED 熄灭。
8 G/ J9 l& [+ T) p+ {+ x% r" n- `- s; y: H: ?  l' M
源代码:9 m9 I- o& s1 W
B03.rar (715.63 KB, 下载次数: 6)
赞 收藏 1 评论0 发布时间:2019-1-29 22:29

举报

0个回答

所属标签

相似技术帖

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