iic驱动问题
iic0为什么可以重复被打开。重复打开后是否可以用。
typedef struct _IIC_IO_DESC {
UCHAR SlaveAddr; // Slave Address
PUCHAR Data; // pBuffer
DWORD Count; // nBytes to read/write
} IIC_IO_DESC, *PIIC_IO_DESC;
IIC_IO_DESC outputBuffer;
IIC_IO_DESC outputBuffer1;
outputBuffer.SlaveAddr= (UCHAR)daSlaveAddr;
outputBuffer.Data=&WordAddr;
outputBuffer.Count=1;
outputBuffer1.SlaveAddr= (UCHAR)daSlaveAddr | 0x01;
outputBuffer1.Data=pBuffout1;
outputBuffer1.Count=1;
if(m_hIic==INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("IIC驱动未打开!"));
return 0;
}
if (!DeviceIoControl(m_hIic,
IOCTL_I2C_READ,
&outputBuffer,sizeof(IIC_IO_DESC),
&outputBuffer1,sizeof(IIC_IO_DESC),
&actlen,NULL))
{
dwErr = GetLastError();
AfxMessageBox(_T("读EEPROM失败!"));
return 2;
}
iic0可以被打开,读写不成功。