打印

NRF51822 开发板

[复制链接]
1240|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 chenwei6991627 于 2016-6-15 13:47 编辑

键盘输入响应
按键的输入其实就是对 GPIO 口进行操作。 同时引入了中断的概念。实际上按键控制分为两种情况, 第一种是按键扫描, 这种情况下, CPU 需要不停的工作, 来判断 GPIO口是否被拉低或者置高,效率是比较低的。另一种方式为中断控制,中断控制的效率很高,一旦系统 IO 口出现上升沿或者下降沿电平就会触发执行中断内的程序。 在
nRF51822 内普通 IO 管脚设置成为 GPIO,中断和任务管脚设置称为 GPIOTE。

SW1 和 SW2 分别和 P0.16 和 P0.17 两个 IO 管脚相连。当 IO 管脚为低的时候可以判断管脚已经按下。通过 key 的按下来控制 led 的亮灭。硬件上设计是比较简单的。

软件中主要是要编写key.c和main函数
#include "key.h"

void KEY_Init(void)
    {

        nrf_gpio_cfg_input(16,NRF_GPIO_PIN_PULLUP);//
        
        nrf_gpio_cfg_input(17,NRF_GPIO_PIN_PULLUP);
        
    }

uint8_t KEY1_Down(void)
{
     if( nrf_gpio_pin_read(BUTTON_0)== 0 )
    {

        nrf_delay_ms(10);
        if(nrf_gpio_pin_read(BUTTON_0)== 0 )
        {

            while(nrf_gpio_pin_read(BUTTON_0)== 0 );
            return 0 ;
        }
        else
        return 1;
}
else
        return 1;
}
初始主要配置IO为输入,检测函数主要是完成低电平检测,延时延时去抖,确认按键的输入。
看实物的调试:

QQ562463654

相关帖子

沙发
chenwei6991627|  楼主 | 2016-6-21 12:24 | 只看该作者
哦,你代理啊,多少钱一片

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

103

帖子

2

粉丝