iic驱动问题

lin415804 2011-03-25 04:39:28
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可以被打开,读写不成功。
...全文
159 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin415804 2011-03-29
  • 打赏
  • 举报
回复
模式!好像没什么关系。底层驱动这个值是不用的
MEIDANZON 2011-03-29
  • 打赏
  • 举报
回复
我可能说的不一定对,你读的时候和写的时候IIC_MODE是不是应该不一样呀
yf882 2011-03-29
  • 打赏
  • 举报
回复
查看底层代码,可能是BSP的iic驱动问题

据说wince6.0对嵌入指针支持不好,仔细检查一下

可以将驱动的debug打开,每次读写iic的时候把需要的信息打印到串口,然后再分析
lin415804 2011-03-26
  • 打赏
  • 举报
回复
主要的问题是读写不正确
lin415804 2011-03-26
  • 打赏
  • 举报
回复
我看过了好像是没有做限制。
当我遇上-你 2011-03-26
  • 打赏
  • 举报
回复
帮顶 ,在驱动中可以限制打开次数,先看驱动与问题没
lin415804 2011-03-25
  • 打赏
  • 举报
回复
自己顶啊

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧