nrf52x 二 GPIOTE

#什么是 GPIOTE

其实 GPIOTE中断和其它的单片机也差不多它对应的有 任务模式(task),事件模式(event)所谓事件 就是IO口检测到发生了变化 比如由 0变1 这就是一个时间 任务就是自己IO口主动去改变自己的状态 比如由1 变 0

任务模式(task):
每个 GPIOTE 通道最多可以使用三个任务来执行对引脚的写操作。两个任
务是固定的输出高电平(SET)和输出低电平(CLR),一个输出任务(OUT)可配置为执行以下
操作:
• 置位(Set)
• 清零(Clear)
• 切换(Toggle)
事件模式(event):
可以从以下输入条件之一在每个 GPIOTE 通道中生成事件:
• 上升的边缘
• 下降的边缘
• 任何改变

如何配置 GPIOTE

关键就是设置GPIOTE的CONFIG[n]n=0~7寄存器 一共八个通道

void EXIT_KEY_Init(void)
{
	 nrf_gpio_cfg_input(13,NRF_GPIO_PIN_PULLUP);//设置管脚位上拉输入	   
    NVIC_EnableIRQ(GPIOTE_IRQn);//中断嵌套设置
	//一共有8个对应的通道 这里是设置 具体哪个通道对应哪个IO
    NRF_GPIOTE->CONFIG[0] =  (GPIOTE_CONFIG_POLARITY_HiToLo << GPIOTE_CONFIG_POLARITY_Pos)
                           | (13 << GPIOTE_CONFIG_PSEL_Pos)  
                           | (GPIOTE_CONFIG_MODE_Event << GPIOTE_CONFIG_MODE_Pos);//事件还是任务(Event)	 
    NRF_GPIOTE->INTENSET  = GPIOTE_INTENSET_IN0_Set << GPIOTE_INTENSET_IN0_Pos;// 使能中断类型:
}

1.如上代码 nrf_gpio_cfg_input(13,NRF_GPIO_PIN_PULLUP);//这里要对Io口进行初始化设置 这很好理解(就和STM32F103一样 ,只是具体的实现方式有点不一样)
2.开启中断
3 配置模式 NRF_GPIOTE->CONFIG[0] (主要就是对它进行配置稍后会详解)
4.使能中断

在这里插入图片描述
这里一共20bit 比如我要配置成事件模式Event 就将它的低两位配置成 01(它这里 一般都是过10进制来写的 宏定义基本也都是10进制) 然后打开它的宏定义
在这里插入图片描述
它设置寄存的方式基本都是这样的.

中断配置

学过51和32的应该都知道,完成了上面的配置后还要进行中断的配置

void GPIOTE_IRQHandler(void)
{

    if ((NRF_GPIOTE->EVENTS_IN[0] == 1) && 
        (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN0_Msk))
    {
        NRF_GPIOTE->EVENTS_IN[0] = 0; //中断事件清零.
			  Delay(10000);	
			 if(nrf_gpio_pin_read(KEY_0)== 0)
			 {
			  LED1_Toggle();//led灯翻转
			 }
			
    }

    if ((NRF_GPIOTE->EVENTS_IN[1] == 1) && 
        (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN1_Msk))
    {
        NRF_GPIOTE->EVENTS_IN[1] = 0; //中断事件清零.
			  LED2_Toggle();//led灯翻转
			
    }

 
}

这种中断函数是固定的 这几个通道都是公用这个中断函数然后通过if 去判断是不是这个中断发生了,和51 串口接收和发送中断都是公用一个中断函数一样.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值