求助:嵌入式读usb键盘

发布于 2022-10-15 09:07:34 字数 1590 浏览 21 评论 0

我需要从开发板上的usb键盘读数据,于是写了一个带scanf函数的程序,下到开发板上运行但是只能读取pc机上超级终端的数据。然后我用开发板上QT自带的终端运行,就可以读键盘上的程序。因为这个程序需要自动运行,设置好后,开机后只能读pc机上的超级终端数据,而经验证,该程序开机后在运行。后来我怀疑是QT的问题,在开机自动运行中把qt注释掉后,还是不能读键盘。哪位高手帮忙解决一下,不胜感激。
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
int main()
{
char s[20];
int fd;
fd=open("dev/tty1",O_RDWR);
if (fd < 0)
  {  
  perror("can not open device usbkeyboard!");  
  exit(1);  
  }
scanf("%s",s);
printf("%s",s);
return 0;
}
上面这个就只能读超级终端的数据。
然后我听别人建议换了一种读的方式
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>

struct input_event buff;  
int fd;
char s[5];
int main(int argc, char *argv[])
{
  fd = open("dev/tty0", O_RDONLY);
  if (fd < 0)
  {  
  perror("can not open device usbkeyboard!");  
  exit(1);  
  }
  while(1)
{
read(fd,&buff,sizeof(struct input_event));
printf("type:%d code:%d value:%d\n",buff.type,buff.code,buff.value);
}
  close(fd);  
  return 0;
}
结果读出来的东西都是乱码。
请各位大神们指点下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文