打印
[嵌入式linux]

/dev/input/event会引起qt卡死

[复制链接]
1176|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinyi7016|  楼主 | 2021-4-23 15:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jinyi7016 于 2021-4-23 15:23 编辑

有一个Qt程序用的是触摸屏,还做个了button.ko的模块加载。
正常qt运行后,加载ko,
再运行一个小程序,读取button的

当按几次button后,Qt程序会卡死不刷新,触摸也没有用。尤其是按的速度快了,几乎快按时都会卡死,慢按时,有机率卡死。
但button的小程序还正常运行。
下面是btuuon测试的程序
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <time.h>
#include <fcntl.h>
#include <linux/input.h>

int main(int argc, char **argv)
{
        int key_state;
        int fd;
        int ret;
        int code;

        struct input_event buf;

        fd = open("/dev/input/event1", O_RDONLY);

        if (fd < 0) {
                printf("Open Gpio_Keys failed!\n");
                return -1;
        }

        printf("Open Gpio_Keys successed!\n");

        while(1) {
                ret = read(fd, &buf, sizeof(struct input_event));
                if (ret <= 0) {
                        printf("read failed!\n");
                        return -1;
                }

                code = buf.code;
                key_state = buf.value;

                switch(code)
                {
                        case KEY_PROG1:
                                code = '1';
                        break;
                        case KEY_PROG2:
                                code = '2';
                        break;
                        case KEY_PROG3:
                                code = '3';
                        break;
                        case KEY_PROG4:
                                code = '4';
                        break;
                        
                }

                if(code != 0)
                        printf("KEY_PROG_%c state= %d.\n", code, key_state);
        }

        printf("Key test finished.\n");

        close(fd);

        return 0;
}




使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

1336

帖子

12

粉丝