輸入子系統程式設計實驗

2022-05-04 20:54:08 字數 1861 閱讀 1809

使用input輸入子系統

1.分配input_dev

2.設定

3.註冊

4.硬體相關操作(有資料產生時,需要呼叫input_event來上報,給input_handle  最終呼叫到input_handler 中的event函式)

input_dev結構體

unsigned long

evbit[nbits(ev_max)];

unsigned

long

keybit[nbits(key_max)];

unsigned

long

relbit[nbits(rel_max)];

unsigned

long

absbit[nbits(abs_max)];

unsigned

long

mscbit[nbits(msc_max)];

unsigned

long

ledbit[nbits(led_max)];

unsigned

long

sndbit[nbits(snd_max)];

unsigned

long

ffbit[nbits(ff_max)];

unsigned

long swbit[nbits(sw_max)];

入口函式:

static

int buttons_init(void

)

return0;

}

出口函式:

/*

出口函式

*/static

void buttons_exti(void

) del_timer(&buttons_timer);//

刪除定時器

input_unregister_device(buttons_dev);//

input_unregister_device解除安裝掉buttons_dev

input_free_device(buttons_dev);//

釋放掉分配的空間

}

按鍵中斷:

//

中斷處理函式

static irqreturn_t buttons_irq(int irq, void *dev_id)

ls -l /dev/event*  檢視驅動事件

hexdump /dev/event1  十六進製制顯示(open(/dev/event1) read())

# hexdump /dev/event1

秒             微秒     type     code     value

0000000 0052 0000 354a 000c 0001 001f 0001 0000

0000010 0052 0000 e0df 000e 0001 001f 0000 0000

0000020 0054 0000 8901 0000 0001 001f 0001 0000

0000030 0054 0000 0d75 0003 0001 001f 0000 0000

使用exec命令 替代掉鍵盤

關於exec 命令參考

輸入子系統

驅動函式操作步驟 在初始化函式中 1.分配乙個input dev結構體 struct input dev buttons dev buttons dev input allocate device 2.設定 2.1 能產生哪類事件 set bit ev key,buttons dev evbit s...

系統程式設計(檔案輸入輸出)

程式1 鍵盤輸入,顯示屏顯示 沒有用到檔案,簡單使用read和write include int main from fd open argv 1 o rdonly if from fd 1 to fd open argv 2 o wronly o creat,s iwusr s irusr if ...

Linux輸入子系統

1.1.input子系統概述 輸入裝置 如按鍵,鍵盤,觸控螢幕,滑鼠等 是典型的字元裝置,其一般的工作機制是低層在按鍵,觸控等動作發生時產生乙個中斷 或驅動通過timer定時查詢 然後cpu通過spi,i2c或者外部儲存器匯流排讀取鍵值,座標等資料,放乙個緩衝區,字元裝置驅動管理該緩衝區,而驅動的r...