s3c6410 winCE6.0 IIC驱动BUG 再续
来源:互联网 发布:淘宝描述图片宽度 编辑:程序博客网 时间:2024/05/19 13:28
读过程中最后一个字节不要给ACK到器件,则器件不会继续发送数据,否则,器件自动发送下一个地址的字节数据! 之前的修改(http://blog.csdn.net/knock/archive/2009/11/02/4758818.aspx)有误。
case Master_receive:
。。。。。
if (g_uIIC_PT==g_uIIC_DATALEN)
{
g_pIICReg->IICCON &= ~(1<<7); //注释掉会导致器件继续发数据,多次进入中断
}
。。。。。
总的来说,在原版的基础上,修改的有两个问题:
1.修改为驱动内自己的buffer接收IIC总线上的数据,然后copy到应用程序的buffer
2.修改中断服务里IIC_IST()判断一个读或写完成的条件
if (bDone)
{
RETAILMSG(ZONE_INFO, (TEXT("SetEvent DONE/r/n")));
bDone = FALSE; //添加这行
SetEvent(g_hTransferDone);
}
这样修改过后,我的调试助手读写再也没出错,秀一下,呵呵~~
打开camera的应用程序,写完camera模块寄存器后,不会再出现类似错误
Exception 'Data Abort' (4): Thread-Id=01840006(pth=85aa48d4), Proc-Id=00400002(pprc=82699308) 'NK.EXE', VM-active=04ec0006(pprc=849cda50) 'explorer.exe'
PC=c0b721cc(s3c6410_iic.dll+0x000021cc) RA=c0b721b8(s3c6410_iic.dll+0x000021b8) SP=d283fe64, BVA=0004f2cd
但用示波器抓发现camera应用程序打开后,读寄存器,前三个字节都正常,有ACK,读到的第四字节全是0x00,而关闭camera应用程序后,示波器抓到又是有数据的。
这个问题先放放,等闲下来再仔细找原因。
- s3c6410 winCE6.0 IIC驱动BUG 再续
- s3c6410 winCE6.0 IIC驱动BUG
- s3c6410 winCE6.0 IIC驱动BUG 续
- s3c6410 winCE6.0 IIC驱动读写冲突
- WINCE6.0+S3C6410串口驱动
- wince6.0 s5pv210 iic驱动 报错
- wince6.0 s5pv210 iic驱动 报错
- wince6.0+s3c6410摄像头驱动修改
- WINCE6.0+S3C6410下的DM9000A驱动
- 基于WINCE6.0+S3C6410的背光驱动
- WINCE6.0+S3C6410的触摸屏驱动
- WINCE6.0+S3C6410的触摸屏驱动
- 基于WINCE6.0+S3C6410的背光驱动
- s3c6410+wince6.0 选择触摸驱动
- WINCE6.0+S3C6410的触摸屏驱动
- WINCE6.0+S3C6410的触摸屏驱动
- WinCE6.0+S3C6410 USB驱动架构分析
- Wince6.0 s3c6410触摸屏驱动分析
- 个人所得税计算公式(起征点2000元)
- 期货投资能带来什么
- ASP.NET(C#)面试题
- 对浮点数四舍五入的方法
- 英特尔推出Moblin 2.1 进军台式机挑战微软
- s3c6410 winCE6.0 IIC驱动BUG 再续
- C#+ArcEngine 序列化和反序列化AE对象
- discuz论坛伪静态设置
- linux channel bonding(1) (linux 双网卡绑定(1))
- SQL一个存储过程调用另一个存储过程 获得返回值问题
- 长尾效应(由百度网络资料整理)
- 设为首页代码大全
- C++中文字符数组示例程序
- 线程解析(一)