小编Mer*_*rcy的帖子

Linux输入设备读取ioctl(EVIOCGKEY())与读取(input_event)

我所有的代码都基于linuxjournal.com上的一篇文章, 这是我基于我的代码编写的文章

我正在编写一个嵌入式应用程序,并且试图从键盘上读取按键。
这是我正在使用的代码

uint8_t key_b[KEY_MAX/8 + 1];
memset(key_b, 0, sizeof(key_b));
ioctl(fd, EVIOCGKEY(sizeof(key_b)), key_b);

for (yalv = 0; yalv < KEY_MAX; yalv++) {
    if (test_bit(yalv, key_b)) {
        /* the bit is set in the key state */
        printf("  Key 0x%02x ", yalv);
        switch ( yalv)
        {
        case KEY_RESERVED :
            printf(" (Reserved)\n");
            break;
        case KEY_ESC :
            printf(" (Escape)\n");
            break;
        /* other keys / buttons not shown */
        case BTN_STYLUS2 :
            printf(" (2nd Stylus Button )\n");
            break;
        case KEY_1:
            printf("The key 1 …
Run Code Online (Sandbox Code Playgroud)

c linux keyboard ioctl keyboard-events

5
推荐指数
1
解决办法
3649
查看次数

标签 统计

c ×1

ioctl ×1

keyboard ×1

keyboard-events ×1

linux ×1