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

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。嵌入式linux下如何使用usb键盘,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

首先usb键盘驱动的源代码位于一下目录:

drivers/usb/input/usbkbd.c

将usb键盘驱动编译进内核:

#make menuconfig

Device Drivers—>USB support—->USB HIDBP Keyboard (simple Boot) support

(注意:有可能默认设置USB键盘驱动是不可见的,需修改当前目录下的Kconfig文件)

保存设置后,重新编译内核:

#source setenv

#make uImage
#make zImage

uImage生成后位于目录:arch/arm/boot/uImage;

(或者直接将usb键盘驱动编译为驱动模块,进行加载也可);

启动系统后,确定usb键盘加载到了那个设备文件,一般为/dev/input/event0设备,可通过cat命令进行确认:

#cat /dev/input/event0

操作usb键盘,会有乱码出现;

然后应用层用这个程序来获取usb键盘的输入:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>

struct input_event buff; 
int fd; 
int read_nu;

int main(int argc, char *argv[])
{undefined
    fd = open("/dev/input/event0", O_RDONLY);
    if (fd < 0)
    { 
        perror("can not open device usbkeyboard!"); 
        exit(1); 
    } 
    int i = 0;
    printf("--fd:%d--\n",fd);
    while(1)
    {undefined
        while(read(fd,&buff,sizeof(struct input_event))==0)
        {undefined
            ;
        }
        //if(buff.code > 40)
        printf("type:%d code:%d value:%d\n",buff.type,buff.code,buff.value); 
        
        //#if 0
        //i++;
        //if(i > 12)
        //{undefined
            //break;
        //} 
        //#endif
    } 
    
    close(fd); 
    return 1;
}

运行程序后,按下A键,可见如下输出:

–fd:3–

type:1 code:30 value:1
type:0 code:0 value:0

按下a键,可见如下输出:
type:1 code:60 value:1
type:0 code:0 value:0

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/163846.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!