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

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

[复制链接]
slotg 发布时间:2019-1-29 22:29
本帖最后由 slotg 于 2019-1-29 22:32 编辑
6 [$ U1 c/ s3 f; M) N( X; s' ?9 ~8 R, I6 V- i+ M1 i. r7 `/ d
在 STM8-SO8-DISCO 板上的使用者 LED 对应 STM8S001J3 器件的安排是在 PA3 高电位输出点亮,而使用者按键是在 PC3 电路上有安排下拉电阻。而我在面包板上的接法 LED 也是在 PA3 高电位点亮,使用者按键也是在 PC3,不过我不接下拉电阻而是配置 PC3 有上拉电阻。
! t. b% M4 v7 r* P* E
* ^) l6 X3 W( T9 O5 Y P03.JPG . F! W: d2 p2 C% K, Y
3 b* v$ u1 P( ^7 c8 B7 @+ }' X; z$ J3 F
在上一个 LAB 当中使用到了 SWIM 这根管脚,因此程序的开始做了一些必要的设定与延迟,不过目前所要实现的功能都不使用 pin8 这根管脚,所以程序中先移除这部份的代码。
! _/ \2 O) x( T4 {  m, y6 J$ e- m" a+ P+ r1 o& t8 W* o" Q" ~( y1 L/ f
(一)
' U" ?  T! B( _* ~7 z# l2 I  _  P, _+ K第一个程序先来实现一个最简单的 GPIO 输入输出功能,程序读取 PC3 按键状态并直接输出到 PA5 上的 LED。
' N! r& z, N% U+ p8 j0 f" T2 a. }  G8 k) R& M
管脚定义:
  m" J9 J& q$ ^# S2 C
  1. #define LED_GPIO_PORT  (GPIOA)
    9 G! P. c0 z2 B/ D$ K8 D, E
  2. #define LED_GPIO_PINS  (GPIO_PIN_3)
    + N. K7 z8 V/ ?7 E: k. w

  3. 6 g" B* Q# ~1 b$ W# V9 ?1 k3 j, W
  4. #define KEY_GPIO_PORT  (GPIOC)" B0 p% f! h# a% T( b: z4 {
  5. #define KEY_GPIO_PINS  (GPIO_PIN_3)# l2 R$ T- a/ x" m* ?; [: P
复制代码
4 M+ \2 t) r9 Z9 G" v1 I8 M
main 回圈:
% H+ Y: ~' H" m( H7 U3 K
  1. void main(void)7 x4 j/ a) b& H9 ~* `
  2. {
    3 p: m. c" e1 Q# C+ X5 G
  3.   GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
    0 G# }9 \& L5 Y" N' f7 v4 Y
  4.   GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_MODE_IN_PU_NO_IT);
    8 u" `1 p; ^5 x/ B" }
  5.   
    ) U: P, o* [! i; p
  6.   while (1)8 S! A# u2 o5 o. C5 k/ A5 c0 T5 j
  7.   {
    2 R2 M/ Q5 i' ]# Y  o
  8.     if(GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PINS))
    # M9 z7 Q9 w' L/ ?* B
  9.     {3 o$ A- k7 D- X4 r7 G
  10.       GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);- Z  Y1 f/ a% H  f  X$ o5 P
  11.     }, m% j  Y- D$ w* W; m' q
  12.     else
    1 s1 M, d4 W3 v
  13.     {# K3 J3 p* n4 c7 D1 ~; Q' I5 ?" u
  14.       GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);   
    . t. c1 ~4 z# |5 Y8 j; d) @/ b
  15.     }
    5 @# G4 [! {2 T. l
  16.   }
    4 I/ A. F/ [/ X8 y! R5 G
  17. }7 y* @: n3 h" y" n
复制代码

3 _' s  V1 Z! d' A0 K. o按键放开时由于有上拉电阻所以输入状态为 1,直接输出给 LED 因此 LED 是亮起的状态,按键按下时 LED 熄灭。
0 H2 @) y( q# t8 l+ i3 Z
+ w$ B5 L" |( O& P- l, b源代码:
! A' G2 s/ l% \! u B03.rar (715.63 KB, 下载次数: 6)
收藏 1 评论0 发布时间:2019-1-29 22:29

举报

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