我想为自己的键盘开发自己的键盘驱动程序。我必须使用 GPIO 来识别关键事件并使用 I2c 来获取扫描码。 我打算开发这样的键盘驱动程序。
#include <linux/gpio.h>
#include <linux/interrupt.h>
#define GPIO 1 //gpio PIN
...
if(gpio_request(GPIO, "Description")){
Exception
}
gpio_direction_input(GPIO);
...
int irq = 0;
if((irq = gpio_to_irq(GPIO)) < 0 ){
Exception
}
…
int init_module(){
int result = request_irq(GPIO, handler_func, IRQF_TRIGGER_LOW,"Description", "Device id");
if(result){
Exception
}
}
void handler_func(...){
//get scan code via i2c
}
我需要开发一个接口(interface),需要处理以下操作
在我的键盘中,在 [KEY1] 上打印为“1abc”。
1. 当按下 键时,显示第一个字符 -> "1"
2.特殊组合键用于输入其他3个字符
例如:
按键输入操作如下;
KEY1(直接按下)应显示“1”
F1 + KEY1(同时按下)应显示“a”
F2 + KEY1(同时按下)应显示“b”
F3 + KEY1(同时按下)应显示“c”
我的问题是我应该如何开发这个接口(interface)?
最佳答案
您最好遵循 Analog Devices 的键盘和 GPIO Linux 驱动程序。我将为您提供一些 GPIO 驱动程序的链接。
此驱动程序包含这些功能
- 可配置的键盘大小矩阵(行、列)。
- 支持切换事件。
- 自动按键重复。
- 锁定/解锁关键功能。
关于linux - 我自己的 linux Chorded 键盘驱动程序和我的嵌入式应用程序的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186330/