听视频记的笔记和自己凭笔记写的代码
输入子系统的驱动程序
只需要控制设备层即可
1,分配一个input_dev
2, 设置 按键类事件
evbit – 能产生哪些事件
keybit — 能产生这些事件中的哪些按键
3,注册
4,硬件相关操作
首先编写入口 出口函数 + GPL协议
static int input_key_drv_init(void)
{
}
static int input_key_drv_exit(void)
{
}
module_init(input_key_drv_init);
module_exit(input_key_drv_exit);
MODULE_LICENSE("GPL");
注册
input_register_device(pin_dev);
设置
set_bit(EV_KEY,pin_dev->evbit);
set_bit(EV_REP,pin_dev->evbit);//一直按会一直显示
set_bit(KEY_L, pin_dev->keybit);
set_bit(KEY_S, pin_dev->keybit);
set_bit(KEY_ENTER, pin_dev->keybit);
set_bit(KEY_LEFTSHIFT, pin_dev->keybit);
硬件相关操作
init_timer(&buttons_timer);
buttons_timer.function = buttons_timer_function;
//buttons_timer.expires = 0;
add_timer(&buttons_timer);
for(i=0;i<4;i++){
request_irq(pins_desc[i].irq, buttons_irq, IRQT_BOTHEDGE, pins_desc[i].name,&pins_desc[i]);
}
串口命令
ls -l /dev/event* //显示 是否挂载成功
cat /dev/tty1 //可以按按键le
exec 0< /dev/tty1 //从按键输入 换成键盘的话 需要重启 -_-!!!
好好学习天天向上