嵌入式linux下如何使用usb键盘

2019-07-12 15:50发布

首先usb键盘驱动的源代码位于一下目录: drivers/usb/input/usbkbd.c 将usb键盘驱动编译进内核: #make menuconfig Device Drivers--->USB support---->USB HIDBP Keyboard (simple Boot) support (注意:有可能默认设置USB键盘驱动是不可见的,需修改当前目录下的Kconfig文件,在此不做详细介绍,Kconfig语法有待进一步熟悉:)) 保存设置后,重新编译内核: #source setenv #make uImage uImage生成后位于目录:arch/arm/boot/uImage; (或者直接将usb键盘驱动编译为驱动模块,进行加载也可);   启动系统后,确定usb键盘加载到了那个设备文件,一般为/dev/input/event0设备,可通过cat命令进行确认: #cat /dev/input/event0 操作usb键盘,会有乱码出现; 然后应用层用这个程序来获取usb键盘的输入: #include
#include
#include
#include struct input_event buff; 
int fd; 
int read_nu; int main(int argc, char *argv[])
{
    fd = open("/dev/input/event0", O_RDONLY);
    if (fd < 0)
    { 
        perror("can not open device usbkeyboard!"); 
        exit(1); 
    } 
    int i = 0;
    printf("--fd:%d-- ",fd);
    while(1)
    {
        while(read(fd,&buff,sizeof(struct input_event))==0)
        {
            ;
        }
        //if(buff.code > 40)
        printf("type:%d code:%d value:%d ",buff.type,buff.code,buff.value); 
        
        //#if 0
        //i++;
        //if(i > 12)
        //{
            //break;
        //} 
        //#endif
    } 
    
    close(fd); 
    return 1;
} 运行程序后,按下A键,可见如下输出: --fd:3-- type:1 code:30 value:1
type:0 code:0 value:0