imx6配置GPIO KEY,编写KEY应用

(主机端)

基础知识

imx6 3.0.35  kernel中内核驱动核心源码实现位置

参数配置文件

板级目录:arch/arm/mach-mx6/
板级文件:arch/arm/mach-mx6/board-myimx6ek***.c (“***”表示200或314)
管脚功能定义:arch/arm/mach-mx6/board-myimx6ek***-6*.h (“***”表示200或314,“*”表示q或u)
管脚标号定义:arch/arm/plat-mxc/include/mach/iomux-mx6*.h (“*”表示q或dl)

实现目的

查看原理图,将SW5 按键在kernel中添加出文件设备以供操作,

imx6配置GPIO KEY,编写KEY应用_第1张图片

 

查看硬件对应IO口

由图可得IO引脚为EIM_D29,查找数据手册 IMX6DQ参考手册(RM)_201507.pdf 中可得,SW5的引脚为GPIO3_IO29

imx6配置GPIO KEY,编写KEY应用_第2张图片

在kernel中配置EIM_D29引脚为GPIO模式

在arch/arm/mach-mx6/board-myimx6ek200-6q.h中

imx6配置GPIO KEY,编写KEY应用_第3张图片

 

在kernel中注册EIM_D29引脚为GPIO-KEY驱动框架

在kernel中将EIM_D29引脚注册到系统GPIO-KEY驱动框架上,修改arch/arm/mach-mx6/board-myimx6ek200.c

//定义需注册的io

 

//注册到系统gpio-key框架数组

imx6配置GPIO KEY,编写KEY应用_第4张图片

 

配置Menuconfig支持GPIO-KEY框架

Device Drivers ---> Input device support ---> [*] Keyboards ---> <*> GPIO Buttons

imx6配置GPIO KEY,编写KEY应用_第5张图片

生成镜像uImage并烧录

make uImage -j4

(开发板端)

查看GPIO-KEY框架下得自定义按键设备

cd /sys/devices/platform/gpio-keys

查看key对应的触发事件详情

cat /proc/bus/input/devices

imx6配置GPIO KEY,编写KEY应用_第6张图片

 

该按键所对应的设备文件为

ls /dev/input/event0 -l

 

编写SW5按键的应用程序

#include 
#include 
#include 
#include 
#include 

#define NOKEY 0
#define KEYPAD_DEV /dev/input/event0

int main()
{
	int keys_fd;	
        char ret[2]; 
	struct input_event t;
	char *dev;
      
        keys_fd = open("/dev/input/event0", O_RDWR);
	if(keys_fd<=0)
	{
                printf("open %s device error!\n",keys_fd);
		return 0;
	}

	while(1)
	{	
                if(read(keys_fd,&t,sizeof(t))==sizeof(t)) {
		    if(t.type==EV_KEY)
			if(t.value==0 || t.value==1)
			{
			//	printf("%d \n", t.code);
				switch(t.code)
				{
					case 114:
			    		printf("key114 %s\n",(t.value)?"Pressed":"Released");
			    	break;
			    	
			    	case 115:
			    		printf("key115 %s\n",(t.value)?"Pressed":"Released");
			    	break;
			    	
			    	case 116:
			    		printf("key116 %s\n",(t.value)?"Pressed":"Released");
			    	break;
			    				    	   	
			    	default:
			    		break;
			    }
			}
		}
	}	
	close(keys_fd);
	
        return 0;
}

编译下载GPIO-KEY应用程序&执行

./app_test/key_test 

测试SW5按键

链接:Imx6编译应用APP并烧录

你可能感兴趣的:(imx6)