主题 : 求教WinCE5.0下的IIC驱动 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 8911
精华: 0
发帖: 50
金钱: 350 两
威望: 127 点
贡献值: 0 点
综合积分: 100 分
注册时间: 2009-09-10
最后登录: 2015-10-23
楼主  发表于: 2011-11-17 10:52

 求教WinCE5.0下的IIC驱动

使用Mini2440的WInCE5.0,使用自带的I2C-EEPROM可以获取数据,自己写了一段代码发现不能访问驱动,代码如下:
打开驱动:
    candriver=CreateFile(L"I2C0:",GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING,0,NULL );
        if(!candriver)
        {
            MessageBox(L"ERROR OPENING IIC!");
            return;
        }
访问驱动:
void CIICTESTDlg::OnButton2()
{
    BYTE pBuffin[100]={0};    //输入缓冲
    BYTE pBuffOut[100]={0};    //输出缓冲
    DWORD RetBytes = 0;
    //从机地址
    m_IIC.SlaveAddr=0xa1;
    //从机起始地址
    m_IIC.WordAddr=512;
    //读取个数
    m_IIC.Count=100;
    //输入缓冲数据
    m_IIC.pData=pBuffin;
                                                      //IO控制        句柄    读模式          结构体  大小           返回字节数
           DWORD Ret=DeviceIoControl(candriver,0x0,&m_IIC,sizeof(m_IIC),NULL,0,&RetBytes,NULL);  //
    if(!Ret)
    {
                         MessageBox(L"ERROR OPENING IIC!");
        return;
    }
    UpdateData(TRUE);
    CString sstring = "";
    sstring.Format(_T("%x,"),RetBytes);
    m_strReceiveData+= sstring;
    if(RetBytes>0)
    {
        for(int i = 0; i < RetBytes;i++)
        {
            sstring.Format(_T("%x,"),pBuffin);
            m_strReceiveData+= sstring;
        }
    }
    UpdateData(FALSE);
}
级别: 侠客
UID: 39050
精华: 0
发帖: 76
金钱: 380 两
威望: 76 点
贡献值: 0 点
综合积分: 152 分
注册时间: 2011-03-04
最后登录: 2018-04-30
1楼  发表于: 2012-11-09 13:54
同样关注这个问题