Linux下C語言檢測多個按鍵按下狀態的方法

2021-10-22 17:41:26 字數 658 閱讀 5333

在需要同時監聽多個按鍵按下狀態的情況下,可以通過監聽/dev/input/event事件的方法來判斷按鍵的狀態。比如對於通過鍵盤控制小車時,有可能多個方向鍵同時按下,需要同時監測到,通過前面文章的方法可以有效監控單個按鍵的訊息,但是不能同時監控多個按鍵同時按下的資訊。需要通過記錄鍵盤的按下和釋放事件來確定當前鍵盤的狀態,以方向鍵盤組合按鍵為例,示例程式如下:

#include #include #include #include #include #include int main()  

bool up = 0, down = 0, left = 0, right = 0; //true for pressed, flase for released

double vel = 0, yaw = 0;

while(1)

close(keys_fd);

return 0;

}

如上,監聽鍵盤輸入對應的事件(本機為/dev/input/event6),記錄方向鍵的按下和釋放事件,從而確定各個方向鍵的按下狀態,從而確定相應的遙控指令(vel, yaw)。

不同的機器鍵盤對應的事件名稱不一定一樣,可以通過

$ cat /proc/bus/input/devices

來檢視鍵盤對應的事件。

關於Linux下按鍵的檢測

寫這篇部落格是因為自己想做乙個fc模擬器,核心 6502和ppu的模擬 用的原子開發板的 人家是從pc向微控制器移植,我是反過來了,不過因為寫的不錯,用函式指標代替了switch方法可以學習一下,so就用了它的。在寫按鍵控制的時候碰到一點點問題,怎麼才能獲取按鍵的狀態。寫 的時候碰到三個問題,乙個乙...

20191223同時檢測多個按鍵和按鍵平滑處理

getch 函式,用於返回使用者輸入的字元。當連續按鍵時,該函式返回第乙個字元和第二個字元之間,預設有 0.5 秒的延時,並且之後的連續字元,預設是每秒鐘 15 次輸入。這兩個數值可以在控制面板中設定。如果需要平滑的按鍵輸入,或者同時按下多個按鍵,就不能用 getch 了,需要使用另乙個 windo...

python檢測按鍵按下 如何檢測按鍵是否被按下?

對於python,作為乙個新手,我嘗試著用一本指南來編寫我自己的遊戲。不過,在這個遊戲中,我試著檢測什麼時候乙個鍵一直被按住而不是僅僅按下。我使用的當前 不會使字元移動,而且如果沒有實現halt self,evt 會導致飛船在按住按鈕足夠長時間後無法控制地加速。在from tkinter impor...