jinyi7016 发表于 2021-4-23 15:21

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

本帖最后由 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;
}




页: [1]
查看完整版本: /dev/input/event会引起qt卡死