查看: 2979|回复: 6

[原创] 【LPC11U68】6. GPIO输入—Polling

[复制链接]
  • TA的每日心情
    奋斗
    昨天 20:47
  • 签到天数: 1485 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    93126
    最后登录
    2024-5-8
    发表于 2018-11-5 10:16:07 | 显示全部楼层 |阅读模式
    本帖最后由 stm1024 于 2018-11-5 17:26 编辑

    前面通过LED的亮灭,测试过了GPIO的输出,接下来是测试一下GPIO作为输入。
    废话少说,直接上代码:
    1. int main()
    2. {
    3.     LPC_SYSCTL->SYSAHBCLKCTRL |= (1 << 6);
    4.     LPC_GPIO->DIR[2] |= 1UL << 17;//red led,GPIO output
    5.     LPC_GPIO->DIR[0] &= 0xfffffffd;//SW1, GPIO input
    6.    
    7.     while(1)
    8.     {
    9.         if(0==LPC_GPIO->B[0][1])//sw1 pressed
    10.         {
    11.             Delay_ms(50);
    12.             if(0==LPC_GPIO->B[0][1])
    13.                 LPC_GPIO->NOT[2]=(1<<17);//toggle
    14.         }
    15.     }
    16. }
    复制代码
    这个程序的作用是在SW1的按键按下后,红色的LED会切换状态(取决于你按键的快慢,哈)。
    关键语句分析:
    LPC_GPIO->DIR[0] &= 0xfffffffd;//SW1, GPIO input
    通过查看电路图:
    2018-11-05_100255.png
    可知SW1是连接P0的PIN1上的,DIR寄存器决定了PORT上各针脚的输入输出配置,该位为0,则是输入,该位为1,则是输出。
    不过根据手册的说明,其实默认的配置是输入,所以这一句,在某些时候是可以省略的。
    if(0==LPC_GPIO->B[0][1])//sw1 pressed
    用于判断用户是否有按键按下,上图中可知,按下以后P0.1将和GND导通,因此是低电平。
    在这个大循环中,又加上一个delay,用于按键消抖和给用户反应时间,所以实际把握不好的话,有时间按键按下,并没有切换。


    当然这个程序纯粹只是为了测试GPIO的输入,实际意义不大,一般处理按键,应该采用的是中断方式,预知后事如何,且听下回分解。

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3305

    主题

    6553

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32097
    最后登录
    2024-5-8
    发表于 2018-11-5 15:58:07 | 显示全部楼层
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 20:47
  • 签到天数: 1485 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    93126
    最后登录
    2024-5-8
     楼主| 发表于 2019-2-19 11:41:17 | 显示全部楼层
    ~~~~~~~~~~~~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 20:47
  • 签到天数: 1485 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    93126
    最后登录
    2024-5-8
     楼主| 发表于 2019-2-19 11:41:24 | 显示全部楼层
    ~~~~~~~~~~~~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1337 天

    [LV.10]以坛为家III

    88

    主题

    4294

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9059
    最后登录
    2024-5-6
    发表于 2019-2-19 13:07:13 | 显示全部楼层
    看过手册,其实GPIO不仅是默认为输入,而且其时钟功能还是默认使能。
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 1337 天

    [LV.10]以坛为家III

    88

    主题

    4294

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9059
    最后登录
    2024-5-6
    发表于 2019-2-19 13:07:34 | 显示全部楼层
    话说楼主现在时间好是富裕啊!白天还能更新帖子。
    今天天气不错!签到!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 20:47
  • 签到天数: 1485 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    93126
    最后登录
    2024-5-8
     楼主| 发表于 2019-2-19 13:13:34 | 显示全部楼层
    jobszheng5 发表于 2019-2-19 13:07
    话说楼主现在时间好是富裕啊!白天还能更新帖子。

    忙里偷闲,反正都是写程序啊~~~
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-9 04:46 , Processed in 0.140112 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表