栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

wds - 输入子系统实现按键功能

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

wds - 输入子系统实现按键功能

输入子系统是所有I/O设备驱动的中间层

Linux内核为了能够处理各种不同类型的输入设备,比如 触摸屏,鼠标 , 键盘 , 操纵杆 ,设计并实现了为驱动层程序的实现提供统一接口函数;为上层应用提供试图统一的抽象层 , 即是Linux 输入子系统 。

软件实现

步骤一、创建输入设备结构体

static struct input_dev *_dev = NULL;

_dev = input_allocate_device();

步骤二、设置该设备将支持哪些事件、哪些按键

set_bit(EV_KEY, _dev->evbit);   //事件

set_bit(EV_REP, _dev->evbit);

set_bit(KEY_L, _dev->keybit);

set_bit(KEY_S, _dev->keybit);

set_bit(KEY_ENTER, _dev->keybit);

set_bit(KEY_LEFTSHIFT, _dev->keybit);

步骤三、将输入设备注册到内核

input_register_device(_dev);

步骤四、当发生事件时上报并同步事件

input_event(_dev, EV_KEY, _curr_btn->key_val, 1);

input_sync(_dev);

步骤五、取消注册输入设备,删除设备

input_unregister_device(_dev);

input_free_device(_dev);


验证

在虚拟机上编译生成ko文件,并在开发板上进行安装验证。

步骤一、安装

# insmod drv_button.ko

步骤二、按键验证

方法一

# hexdump /dev/event1

如果按下按键则会打印

方法二

 

系统没有启动QT

cat /dev/tty1

系统启动了QT

1、打开开发板屏幕的Terminal;

2、按下 S0、S2,然后按下S1,即键入了ls指令

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/289247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号