1.按键输入
GPIO可以输出,也可以输入。按钮就是通过输入驱动的,通过按下按键,导致电路联通,引脚收到信号,告诉CPU。
2.电平分析:
开发版一共四个按键,SW1,SW2,SW3,SW4。其中SW1,3,4有特殊功能,因此我们对SW2进行配置。本来是与GND接通的。当按下按键以后,由于3端3.3V,因此只需要读取SNVS_TAMPER1为高电平即可判断是否触发SW2;
根据电路我们需要知道,正常情况下我们KEY的SNVS_TAMPER1口需要时低电平的。当SW2按下后,就能采集到高电平,因此我们只需要获取寄存器的值就可以读取是否有按键按下。
bsp_led.c
#include "bsp_key.h"
#include "imx6ull.h"
#include "bsp_delay.h"
int key_init(int key_value){
IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01 , 0);
IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01 , 0xf080