Board logo

标题: 这样配置IIC有什么错误,数据读写不对 [打印本页]

作者: KOKOKO    时间: 2009-3-10 17:59     标题: 这样配置IIC有什么错误,数据读写不对

void UnitIIC()
{
IIC0_IBCR=0x00;//控制寄存器
IIC0_IBSR_IBAL=1;//清除IBAL标志
IIC0_IBFD=0x47;//时钟寄存器
IIC0_IBAD=0x00;
IIC0_IBCR=0x80;//控制寄存器
IIC0_IBCR_MS_SL=0;//主模式
}
void read()
{
byte temp=0;
IIC0_IBSR=0x00;
IIC0_IBCR_MS_SL=1;
IIC0_IBCR_TX_RX=1;
IIC0_IBDR=RECEIVER_Address_start;
while (!IIC0_IBSR_IBIF); // wait until IBIF
IIC0_IBSR_IBIF=1;
//while(IIC0_IBSR_RXAK); //加上这条语句,程序就卡在这里了

IIC0_IBCR_TX_RX=0;
temp=IIC0_IBDR;

printf("\nRBUFFER=%x",temp);


IIC0_IBCR_MS_SL=0;
}

void write()
{
IIC0_IBCR_MS_SL=1;
IIC0_IBCR_TX_RX=1;//1发送模式 0 接受模式
IIC0_IBDR=RECEIVER_Address_start;
while (!IIC0_IBSR_IBIF); // wait until IBIF
IIC0_IBSR_IBIF=1;

IIC0_IBDR=0x99;
while(IIC0_IBSR_RXAK); // check for RXAK
while (!IIC0_IBSR_IBIF); // wait until IBIF
IIC0_IBSR_IBIF=1;

IIC0_IBCR_MS_SL=0;

}
这样写出来的我现在认为读的是每次在IIC0_IBDR里的数据,并不是我在

EEPROM里的数据。好像都没写进去?


作者: fjczd    时间: 2009-3-11 11:41

建议用Processor Expert生成一个,试试看

PE还是很好用的

比自己写代码要清楚多了,还有例程供参考,推荐一下


作者: KOKOKO    时间: 2009-3-11 21:43

谢谢你,
作者: fjczd    时间: 2009-3-12 10:13

QUOTE:
以下是引用KOKOKO在2009-3-11 21:43:00的发言:
谢谢你,

[em04]
作者: KOKOKO    时间: 2009-3-12 12:02

怎么没人来说说,这个到底错在哪里






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0