欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

wince 6.0 iic 驱动 上层程序有关问题

更新时间: 2014-01-05 03:10:29 责任编辑: Author_N1

 

wince 6.0 IIC 驱动 上层程序问题
我用UT6410开发板上的IIC接口读写DS2782芯片(此芯片是IIC接口),开发板厂商已经把流驱动写好打包进SDK,注册表中有"Mode"=dword:1 ; Mode: 0 = POLLING(轮询), 1 = INTERRUPT(中断) ,是不是说明我的IIC底层驱动是中断模式。
上层应用程序的主要代码如下
hIicContext = CreateFile(TEXT("IIC0:"),GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
ReadFile(hIicContext,(LPVOID)iic_read_data,2 * sizeof(I2C_IO_DESC),&dwbytes,NULL);
WriteFile(hIicContext,(LPVOID)&iic_write_data,sizeof(I2C_IO_DESC),&dwbytes,NULL);
现在从示波器看SDA与SCL管脚无任何波形。
我不清楚中断模式和轮询模式在程序中有什么不同。
如果是中断模式,那么在硬件上SDA和SCL是不是都需要分别接一个中断信号(如INT11、INT12)?软件该怎么改动?
如果想改成轮询模式,是不是把注册表中的"Mode"=dword:1 ; 改为"Mode"=dword:0 ;就可以了。
现在IIC能读写什么模式都成。 
--参考方法--
试试用 DeviceIoControl()
--参考方法--
LZ是不是看不见驱动的代码?照说CE应该可以看见驱动代码的。I2C应该是很容易解决的问题。

有几点需要先确认:

(1)应用层:
     CreateFile readfile writefile 是否成功了。如果连CreateFile都没成功的话,下面肯定也失败   了。
(2)看看驱动代码,确定一下到底是readfile writefile 在读写I2C的寄存器,还是IOControl在读写寄存器。如果是IOControl在读写,在readfile writefile也没用。
(3)确定了这两点之后再用示波器去点波形,看是否正确。
(4)有其他问题可以联系我,kacyquan@live.cn
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:10:29
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19155/
本文WWW.DOC100.NET DOC100.NET版权所有。