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

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

[复制链接]
slotg 发布时间:2019-1-29 22:29
本帖最后由 slotg 于 2019-1-29 22:32 编辑
- b: H6 g' u' J* K, }- c6 b( t7 A$ l* L& b% _5 ?; l) W# g2 i1 p
在 STM8-SO8-DISCO 板上的使用者 LED 对应 STM8S001J3 器件的安排是在 PA3 高电位输出点亮,而使用者按键是在 PC3 电路上有安排下拉电阻。而我在面包板上的接法 LED 也是在 PA3 高电位点亮,使用者按键也是在 PC3,不过我不接下拉电阻而是配置 PC3 有上拉电阻。% J& O/ ?/ `8 R4 v

# T6 S8 O+ ^; ]( h) V. A P03.JPG . u; v/ J! I0 X0 x, X0 W# ]- \
8 m" {0 m% c, p, x! K, A
在上一个 LAB 当中使用到了 SWIM 这根管脚,因此程序的开始做了一些必要的设定与延迟,不过目前所要实现的功能都不使用 pin8 这根管脚,所以程序中先移除这部份的代码。
3 B1 A9 w2 \& Z- W% Q7 r! W0 j3 Q
) n: k9 }: z! O$ e(一)
/ }3 a0 B! @2 r0 }; u) C5 O- P第一个程序先来实现一个最简单的 GPIO 输入输出功能,程序读取 PC3 按键状态并直接输出到 PA5 上的 LED。
. |0 ~5 o- d- A
/ f4 h1 k! a; \* \管脚定义:
) o5 h$ ~7 J5 A$ F2 ~
  1. #define LED_GPIO_PORT  (GPIOA)0 A& c9 L2 u% b. p- x7 `; Y: g
  2. #define LED_GPIO_PINS  (GPIO_PIN_3)
    - r( m4 D4 Y% u/ p

  3. 5 n+ i) `4 h* ?' L0 h. O, }
  4. #define KEY_GPIO_PORT  (GPIOC)$ U. V/ I% z" q* n1 Q1 t/ U0 ~
  5. #define KEY_GPIO_PINS  (GPIO_PIN_3)
    # H5 Z5 m5 p7 \  @4 z
复制代码

+ N6 g6 R2 n# h1 ?' O' vmain 回圈:2 G& v% a* ~2 e4 H7 z, Z9 b+ ?' ?, m
  1. void main(void)
    7 z5 [( Q# P3 m( g( |. X& P
  2. {3 ^5 C9 n$ G! z: E$ t( x3 U
  3.   GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
    " u8 b) E0 ?+ w" l# F: p
  4.   GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_MODE_IN_PU_NO_IT);
    + o$ T( F4 V; v. G0 [
  5.   7 `6 n+ A, i0 U$ r; W1 X
  6.   while (1)
    / R5 p3 ?, S: F4 j4 E/ p  v
  7.   {9 K  _: d7 }* J: x& R) ^% F
  8.     if(GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PINS))/ a- J9 I) ]- l1 p: t& K& L# k
  9.     {- {5 }/ m8 f4 P3 _4 S9 M, S
  10.       GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);8 X* h. G7 |1 E- @3 T
  11.     }
    0 \& G# b+ N. ?9 }
  12.     else
    7 j' q5 }) {5 f# s0 i1 x
  13.     {
    ; e" e. b! a3 t: f. E* U! P6 v. t
  14.       GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);   
    2 D& l3 e' b: w4 u/ \' L
  15.     }
    6 |& E7 B3 p% u  m
  16.   }$ E7 I# y4 P+ v* W2 v" b. i7 }
  17. }" S% e  k  I; _, H4 B/ Q* m
复制代码
5 r4 N4 m4 z8 O+ x# p
按键放开时由于有上拉电阻所以输入状态为 1,直接输出给 LED 因此 LED 是亮起的状态,按键按下时 LED 熄灭。5 ?6 }4 {: f3 k- }3 i' P, C
4 B& |/ M+ ]2 H6 B7 s$ [
源代码:+ O* q4 I1 ?4 U) R: }: m
B03.rar (715.63 KB, 下载次数: 6)
收藏 1 评论0 发布时间:2019-1-29 22:29

举报

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