使用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);
}