天嵌 ARM开发社区

 找回密码
 注册
查看: 2148|回复: 4

求助!open函数打不开设备

[复制链接]
yuanxingoon 发表于 2012-7-26 19:57:53 | 显示全部楼层 |阅读模式
用的是tq2440开发板,用自带的adc测试程序能打开设备,我把这段程序放到Qt程序中,发现在虚拟机中能代开设备,但是移植到板子上就无法打开任何一个设备,open函数的返回值总是-1,这到底是怎么回事?

double SamplingThread::value(double timeStamp) const
{



        fd = ::open("/dev/adc", 0);
        if(fd<0)
        {
            const double x = timeStamp;
            const double v = fd*100;
            return v;

        }
        else
        {
        char buffer[30];
        int len ;

        len = ::read(fd, buffer, sizeof buffer -1);
        if(len>0)
          {


                buffer[len] = '\0';

                const double x = timeStamp;
                const double v = buffer[0]*100+buffer[1]*10+buffer[2];
                return v;
           }
        else
        {
            const double x = timeStamp;
            const double v = 100;

            return v;
        }
::close(fd);
}

}
大家帮帮忙吧
 楼主| yuanxingoon 发表于 2012-7-26 19:59:12 | 显示全部楼层
另外,我发现没有办法远程在板子上调试Qt程序,大家有什么高招,求指教?
TQ-lkp 发表于 2012-7-27 11:11:18 | 显示全部楼层
1、先确认/dev/adc是否存在
2、open第二个参数,请参考
O_RDONLY 以只读方式打开文件
O_WRONLY 以只写方式打开文件
O_RDWR 以可读写方式打开文件
 楼主| yuanxingoon 发表于 2012-7-27 13:19:37 | 显示全部楼层
TQ-lkp 发表于 2012-7-27 11:11
1、先确认/dev/adc是否存在
2、open第二个参数,请参考
O_RDONLY 以只读方式打开文件

版主你好/dev/adc文件是存在的,而且官方自带的adc测试成功,第二个参数试过了,貌似没用,最莫名其妙的是在PC机上试验时居然能成功打开任何一个设备,可是在板子上任何一个都打不开,我感觉应该是一个很小的错误,不知道版主有什么想法,谢谢啦??
TQ-lkp 发表于 2012-7-30 13:11:11 | 显示全部楼层
本帖最后由 TQ-lkp 于 2012-7-30 13:11 编辑

PC机上试验时居然能成功打开任何一个设备,这个就说明你第二个参数不对,你贴的是你的真实代码吗?
你看下pc机的/dev下面是不是自己创建了一个adc设备,我们提供了adc的源码,你参考下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-11-1 09:29 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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