文章目录
- 前言
- 一、设置GPIO输入模式
- 二、检测开关
- 1.配置功能
- 2.具体实现
- 总结
前言
由于上期分享的使用GPIO去控制引脚输出模式点亮LED,那么本期主要介绍一下使用GPIO设置为输入模式,用到的硬件有板载的按键;开发环境也是依赖于S3C2440开发板;
一、设置GPIO输入模式
下图是板子的按键引脚图,从图上可以看出,当开关K1被按下时,EINT8被设置为输入模式,通过该引脚可以判断按键是否被按下;
以下是EINT8对应的引脚图,可知该开关由GPGCON控制;
二、检测开关
1.配置功能
将GPGCON的第0位和第一位设置为输入功能,也就是要检测该引脚电平;
通过GPGDAT的第0位来读取结果,0为低电平,1为高电平;
2.具体实现
将GPG0设置为输入模式,也就是将GPGCON的第两位设置为00;
void key_init()
{
GPGCON &= ~0x3; //设置GPG0输入
}
//这里开关按下是低电平,开关打开是高电平
int get_key()
{
if (GPGDAT & 1) //开关没被按下
return 0;
else //开关按下
return 1;
}
int main(void)
{
key_init();
while(1)
{
if(get_key())
{
led_on();
}
else
{
led_off();
}
}
}
总结
本期主要介绍了GPIO的输入功能的模式配置以及使用方法,当开关按下的时候能够观察到的现象是灯会被点亮,当按键松开的时候灯会熄灭;