这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [疑问4]S3C4510B中对IIC进行操作的一些

共1条 1/1 1 跳转至

[疑问4]S3C4510B中对IIC进行操作的一些

助工
2006-09-09 00:16:56     打赏

我在看<<ARM应用系统开发详解-基于S3C4510B的系统设计>>第二版的P177页时看见对IIC进行操作有个函数是这样写的
红色的部分是不是多余的语句?我看那上面不是有个IICCON=START | ACK;而且写了两次同样的。请高手有空的话给详细解释一下~~~;)
多谢多谢^V^


//读取IIC存储器的内容放到数组中
int DrvIicRead(int addr,int size,int *pdata)
{
//写入读取地址
while (!(IICON & BUSY)); //等待总线不忙
IICCON = START | ACK; //开始,并且ACK使能
IICBUF = IIC_DEV_0 |S_WRITE ;
while (!(IICON & BF)); //等待缓冲为空
IICBUF = (int) (addr & 0xFF); //send lsb address

while (!(IICON & BF)); //等待缓冲为空
IICCON = RESTART ; //重复开始
IICCON = START | ACK ; //开始,并且ACK使能
IICBUF = IIC_DEV_0 |S_READ ;

while (!(IICON & BF)); //等待缓冲为空
IICON = ACK; //为多次读取设置ACK

while (!(IICON & BF)); //等待缓冲为空
for(i=0;i<size;i++) //读取数据
{
*padta++ = IICBUF;
while (!(IICON & BF)); //等待缓冲为空
}

IICON = NOACK; //清除ACK标记
while (!(IICON & BF)); //等待缓冲为空
IICON = STOP; //IIC总线停止
}

[align=right][color=#000066][此贴子已经被作者于2006-9-8 16:24:56编辑过][/color][/align]



关键词: 疑问     S3C4510B     中对     进行     操作     一些     I    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]