3369|4

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问大家,在BSP内核中加载I2C内核,在evc调用出现超时错误,这是怎么回事啊? [复制链接]

I2C_Open ----
>I2C_IOControl(0x40004, 0x1a02f244, 16, 0x0)
I2C IOCTL_I2C_WRITE 090704
I2C IOCTL_I2C_WRITE 090704 MapPtrToProcess
+I2C_Write[1]: 0x9E, 0x1, 0x20, 1
EnterCriticalSection
ResetEvent Be
ResetEvent Af
SyncIst...
LeaveCriticalSection
I2C IOCTL_I2C_WRITE 090704 HW_Write
I2C IOCTL_I2C_WRITE 090704 UnMapPtr
SENDING command id 0x03EA to CDialog target.
>I2C_IOControl(0x40000, 0x1a02fdc4, 16, 0x0)
I2C IOCTL_I2C_READ 090704
I2C IOCTL_I2C_READ 090704 MapPtrToProcess
+I2C_Read[1]: 0x9F, 0x0, 0x1A02FCFC, 2
SyncIst...
-I2C_Read:1460
I2C IOCTL_I2C_READ 090704 HW_Read
I2C IOCTL_I2C_READ 090704 UnMapPtr
SENDING command id 0x03EA to CDialog target.
>I2C_IOControl(0x40000, 0x1a02fdc4, 16, 0x0)
I2C IOCTL_I2C_READ 090704
I2C IOCTL_I2C_READ 090704 MapPtrToProcess
+I2C_Read[1]: 0x9F, 0x0, 0x1A02FCFC, 2
SyncIst...
-I2C_Read:1460
I2C IOCTL_I2C_READ 090704 HW_Read
I2C IOCTL_I2C_READ 090704 UnMapPtr

最新回复

这个驱动可是开发板给的啊,网上提供的还有另外一家开发板厂家给的都是一样的代码啊,而且我确信地址映射没有问题,纳闷死了!!  详情 回复 发表于 2009-10-21 10:09
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可能是IIC驱动写的有问题。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

#define IOCTL_I2C_READ      0x40000      
#define IOCTL_I2C_WRITE      0x40004

//----------------lm75地址、配置字-----------------//
#define      lm75_WR_ADDRESS    0x9e                  //1001        111 0 写
#define      lm75_RD_ADDRESS    0x9f                          //1001        111 1 读

//#define      LM75_REG_TEMP   0x00         //指针寄存器选择 TEMP

#define LM75_REG_TEMP       0x00   
#define LM75_REG_CONF       0x01   
#define LM75_REG_TEMP_HYST  0x02   
#define LM75_REG_TEMP_OS    0x03   

evc上的程序是这样的:
opendevice:
handle = CreateFile(L"I2C0:",GENERIC_READ|GENERIC_WRITE,NULL,NULL,OPEN_EXISTING,NULL,NULL);
可以看到正常打开,
读和写如下:
        DWORD Ret;
        DWORD RetBytes;
        BYTE pBuffin[2] = {0};
        BYTE pBuffOut[2] = {0};
        int i;
        I2C_IO_DESC xx;


        xx.SlaveAddr=lm75_WR_ADDRESS;
        xx.WordAddr=LM75_REG_TEMP;
        xx.Count=1;
        xx.pData=pBuffOut;
        Ret=DeviceIoControl(handle,IOCTL_I2C_WRITE,&xx,sizeof(xx),NULL,0,&RetBytes,NULL);  //
        memset(pBuffin,0,2);
        Sleep(1);
        xx.SlaveAddr=lm75_RD_ADDRESS;
        xx.WordAddr=LM75_REG_TEMP;
        xx.Count=2;
        xx.pData=pBuffin;
    Ret=DeviceIoControl(handle,IOCTL_I2C_READ,&xx,sizeof(xx),NULL,0,&RetBytes,NULL);  //

这些步骤不对吗,请帮分析分析!
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
哪个地方超时了?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个驱动可是开发板给的啊,网上提供的还有另外一家开发板厂家给的都是一样的代码啊,而且我确信地址映射没有问题,纳闷死了!!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表