免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2443 | 回复: 0

[应用] 求助:嵌入式读usb键盘 [复制链接]

论坛徽章:
0
发表于 2011-04-19 20:57 |显示全部楼层
我需要从开发板上的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;
}
结果读出来的东西都是乱码。
请各位大神们指点下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP