由LINUX点亮LED可知,LED的点亮可以说是IO口进行输出,那么对于按键来说,便是对IO口输入功能的配置。
由原理图可知,当按键按下时,IO口为低电平,判断按键是否按下,则需要我们对按键所在的IO口进行高低电平的检测,如果为低电平,则表示按键按下。
而三个按键EINT0与GPF0相连,EINT2与GPF2相连,EINT11与GPG3相连,所以我们只需要对这三个引脚进行初始化即可。
我们只需要对GPFCON进行配置即可,从GPFDAT来进行引脚高低电平的读取。
GPFCON &= ~( (3<<0) | (3<<4) ); //对GPF2/0进行配置
GPGCON &= ~( (3<<6) );
GPFCON |= ( (2<<0) & (2<<4));
GPGCON |= ( (2<<6) );
对按键配置完成后进行数据读取。
int val1,val2,val3;
key_init();
while(1)
{
val1 = GPFDAT;
val2 = GPFDAT;
val3 = GPGDAT;
if(val1 & (1<<0))
led_1_on();
else
led_1_off();
if(val2 & (1<<2))
led_2_on();
else
led_2_off();
if(val3 & (1<<3))
led_3_on();
else
led_3_off();
可以对功能进行测试
代码自行下载
链接:https://pan.baidu.com/s/1lNElpsQEtmNIeUbdVm5pDQ
提取码:m5v5
--来自百度网盘超级会员V4的分享