linux键盘led设备应用程序设计方法,C编程实现键盘LED灯闪烁方法2

本文介绍了一种使用Linux内核input_event接口,通过C编程控制键盘LED灯闪烁的方法。通过读取/proc/bus/input/devices找到键盘对应的event设备,并通过write系统调用向/dev/input/event3发送EV_LED事件,改变LED_NUML、LED_CAPSL、LED_SCROLLL的状态,实现键盘灯的亮灭效果。代码中包含了一个死循环,间隔1秒切换LED灯的状态。
摘要由CSDN通过智能技术生成

在《C编程实现键盘LED灯闪烁》一文中使用了定时器和ioctl的方式实现键盘LED灯周期性闪烁,而键盘本身作为一个输入设备,那么在Linux下也有对应的input_event,故而本次使用它来实现一次,本次很简陋,采用死循环的方式,省去了定时器的麻烦。

关于input_event,需要引用到Linux内核源码的include/linux/input.h头文件,而在应用程序中,我们采用很简单的write系统调用来设置,而写入的数据格式如下:struct input_event {

struct timeval time;

__u16 type;

__u16 code;

__s32 value;

};

对于我们来说,本次需要设置的type是EV_LED,而code则分别是LED_NUML、LED_CAPSL、LED_SCROLLL,value为1时亮,为0时灭。好了,对这初步了解后,那我们write的对象是谁呢?我们通过/proc/bus/input/devices可以找到我们的键盘对应的event,我这边找到的信息如下:I: Bus=0003 Vendor=1241 Product=1603 Version=0110

N: Name=" USB Keyboard"

P: Phys=usb-0000:00:1d.7-3.1/input0

S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1:1.0/input/input4

U: Uniq=

H: H

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值