S3C2440使用GPIO输入功能控制按键

文章目录

  • 前言
  • 一、设置GPIO输入模式
  • 二、检测开关
    • 1.配置功能
    • 2.具体实现
  • 总结


前言

由于上期分享的使用GPIO去控制引脚输出模式点亮LED,那么本期主要介绍一下使用GPIO设置为输入模式,用到的硬件有板载的按键;开发环境也是依赖于S3C2440开发板;


一、设置GPIO输入模式

下图是板子的按键引脚图,从图上可以看出,当开关K1被按下时,EINT8被设置为输入模式,通过该引脚可以判断按键是否被按下;
S3C2440使用GPIO输入功能控制按键_第1张图片
以下是EINT8对应的引脚图,可知该开关由GPGCON控制;
S3C2440使用GPIO输入功能控制按键_第2张图片

二、检测开关

1.配置功能

将GPGCON的第0位和第一位设置为输入功能,也就是要检测该引脚电平;
通过GPGDAT的第0位来读取结果,0为低电平,1为高电平;

2.具体实现

将GPG0设置为输入模式,也就是将GPGCON的第两位设置为00;
S3C2440使用GPIO输入功能控制按键_第3张图片

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的输入功能的模式配置以及使用方法,当开关按下的时候能够观察到的现象是灯会被点亮,当按键松开的时候灯会熄灭;最后,各位小伙伴们如果喜欢我的分享可以点赞收藏哦,你们的认可是我创作的动力,一起加油!

你可能感兴趣的:(ARM体系结构与接口技术,arm开发,linux,嵌入式硬件,ARM汇编)