嵌入式爱好者

查看: 26373|回复: 8

[Linux] 应用程序为何收不到标准键盘的输入

[复制链接]

4

主题

12

帖子

54

积分

AM335x通行证

扫一扫,手机访问本帖
发表于 2017-12-27 19:19:38 | 显示全部楼层 |阅读模式
本帖最后由 seapex 于 2017-12-28 08:07 编辑

在应用程序中用下列语句重定向标准输入到标准键盘
freopen("/dev/tty0", "r", stdin);
再用 getchar() 接收键盘输入,但收不到按键输入,偶尔能收到回车。
注:键盘插在开发板的 USB host 口上

回复

使用道具 举报

1

主题

3670

帖子

4177

积分

发表于 2017-12-29 09:13:13 | 显示全部楼层
您好:
    不好意思,应用程序开发不在我们的技术支持范畴,这个我们这没有相应实例可以提供,敬请谅解
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2017-12-29 19:10:40 | 显示全部楼层
这。。。我问得不是应用程序开发的问题啊,只是举一个应用程序的例子来说明USB键盘驱动是否有问题。
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2018-1-2 17:10:38 | 显示全部楼层
以下是用于测试键盘的源代码,将usb键盘插到开发板的usb口上,用该程序多测几遍就知道具体是什么现象了。

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
    int cnt = 10;
    if (argc>1) {
        cnt = atoi(argv[1]);
    }
   
    FILE *fd = freopen("/dev/tty0", "r", stdin); //redirect stdin
    if (fd==NULL) {
        printf("freopen stdin failure!\n");
        return -1;
    }
    for (int i=0; i<cnt; i++) {
        printf("key=%x\n", getchar());
    }
}
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2018-1-24 09:59:42 | 显示全部楼层
都这么长时间了,还没有个结果吗?
点评回复 支持 反对

使用道具 举报

1

主题

3670

帖子

4177

积分

发表于 2018-1-24 16:51:18 | 显示全部楼层
seapex 发表于 2018-1-24 09:59
都这么长时间了,还没有个结果吗?

您好:
    经我测试,USB键盘的使用是没有问题的,不过我没有使用您的程序,我的测试方法如下:
1、打开一个带有输入框的qt程序
2、连接USB键盘,点击输入框,输入即可(注意只能输入字符,不能切换输入法)
    输入字符没有问题,证明驱动是没有问题的,您也可以用我说的方法测试一下,所以建议您再看一下您的测试程序,我抽时间也给您测试一下,请稍候
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2018-1-26 10:43:35 | 显示全部楼层
我们的程序没有用QT,用的是framebuffer
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2018-11-29 09:13:11 | 显示全部楼层
都快1年了,还没个结果吗?
点评回复 支持 反对

使用道具 举报

4

主题

12

帖子

54

积分

AM335x通行证

 楼主| 发表于 2018-12-24 18:16:03 | 显示全部楼层
今天终于找到原因了
问题原因:与系统控制台的 stdin 设备冲突了。
解决办法:修改/etc/inittab,将下行注释掉
1:2345:respawn:/sbin/getty 38400 tty1
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-20 20:25

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表