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

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

[复制链接]
slotg 发布时间:2019-1-29 22:29
本帖最后由 slotg 于 2019-1-29 22:32 编辑 # Z8 U7 K" Y: g5 c5 G' m
6 z6 [% L* `% X; S
在 STM8-SO8-DISCO 板上的使用者 LED 对应 STM8S001J3 器件的安排是在 PA3 高电位输出点亮,而使用者按键是在 PC3 电路上有安排下拉电阻。而我在面包板上的接法 LED 也是在 PA3 高电位点亮,使用者按键也是在 PC3,不过我不接下拉电阻而是配置 PC3 有上拉电阻。9 c) [* o: P7 D0 `% U

5 q& L$ v$ \' ?+ J' k P03.JPG : E6 w  W! c# D; i% d  V

: {* G' E/ W6 p; o在上一个 LAB 当中使用到了 SWIM 这根管脚,因此程序的开始做了一些必要的设定与延迟,不过目前所要实现的功能都不使用 pin8 这根管脚,所以程序中先移除这部份的代码。
+ e4 L* ^! V) t$ h) U4 V# Z' E6 T' U; h! i& K1 K9 e9 ?
(一). m$ P/ O, \  Y1 F; a3 d% |1 t
第一个程序先来实现一个最简单的 GPIO 输入输出功能,程序读取 PC3 按键状态并直接输出到 PA5 上的 LED。' Y7 e1 D5 |! a$ h
' b- `, X/ p. B& D$ z# g4 q+ [$ X
管脚定义:) P" {4 r, e6 U+ |7 u% v
  1. #define LED_GPIO_PORT  (GPIOA)2 f2 v  [$ t- f% D; B$ O, _
  2. #define LED_GPIO_PINS  (GPIO_PIN_3)" H2 A+ P" J. c* h& o6 ]" h. W
  3. 9 }- _) }" h$ b8 w8 i& I" L8 y2 B5 h
  4. #define KEY_GPIO_PORT  (GPIOC)
    8 ~  D8 I9 W+ \
  5. #define KEY_GPIO_PINS  (GPIO_PIN_3)* F. A' b# |/ X6 R6 _( E
复制代码
! c8 a" |9 X7 X0 L, b9 `: \) h
main 回圈:
  d7 q5 a6 _' N+ m% G! W7 E
  1. void main(void)8 \. m( ?8 s: d5 h: G# \
  2. {
    ' \0 `0 O& h0 U: D- y
  3.   GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
    % v* C& J( c' }) j6 p4 L9 ]
  4.   GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_MODE_IN_PU_NO_IT);1 s9 Q: t. {1 p/ ^# y; G
  5.   9 B" k6 B5 X' [5 q8 x
  6.   while (1)5 ]; A& I/ E& A  I
  7.   {, s! d. d- e0 D
  8.     if(GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PINS))
    ! a+ F) h4 F% S) P
  9.     {
    + K5 Z: j+ Y5 c( O* B
  10.       GPIO_WriteHigh(LED_GPIO_PORT, LED_GPIO_PINS);4 `! A) U+ \; C- f# k% h( A9 n' `
  11.     }+ Y) y5 M: a  D# s
  12.     else
    : e2 X/ I" W5 b3 G' S' f
  13.     {& D. R. R/ m! ?  \% \# f
  14.       GPIO_WriteLow(LED_GPIO_PORT, LED_GPIO_PINS);   
    ( Q6 U0 P- g; R, I
  15.     }- `% a8 f5 _& u
  16.   }+ y7 F/ |8 d7 O2 G- w9 w
  17. }9 J7 H3 V, J: s
复制代码

. y( z& W! K) D, B/ E7 W  C3 g9 b7 Z按键放开时由于有上拉电阻所以输入状态为 1,直接输出给 LED 因此 LED 是亮起的状态,按键按下时 LED 熄灭。- l, W! T; A% j! F; [" T
9 [1 N$ b' z' ]+ @. `* T
源代码:
- q) z3 C6 B8 e+ @ B03.rar (715.63 KB, 下载次数: 6)
收藏 1 评论0 发布时间:2019-1-29 22:29

举报

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