chenwei6991627 发表于 2016-6-15 13:44

NRF51822 开发板

本帖最后由 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

哦,你代理啊,多少钱一片
页: [1]
查看完整版本: NRF51822 开发板