在线时间0 小时
UID2042787
注册时间2013-9-18
NXP金币0
该用户从未签到
新手上路

- 积分
- 29
- 最后登录
- 1970-1-1
|
最近在用IIC总线对一个时钟芯片进行读写,之前有一段时间能读能写,但是一旦在线停止或者复位就不行了,等待总线空闲的语句while(IIC1_IBSR_IBB); 总是执行不过去。今天能写能读了一次,然后又不行了,下面是我的程序的前几句,请大家帮忙分析一下,为什么while(IIC1_IBSR_IBB);过不去。谢谢了!
IIC1_IBFD=0X20;// 设置时钟为总线频率160分频 速率100K
IIC1_IBCR_IBEN=1;//使能IIC,必须在配置控制寄存器的其他位前配置此位
IIC1_IBSR_IBAL=1;//置总线空闲
IIC1_IBCR_RSTA=1; //重启总线
IIC1_IBSR_IBIF=1;
while(IIC1_IBSR_IBB);//执行到这就过不去了!!!!!!!!!!!!!!!!
IIC_start();
IIC_send_data(0b11010000); //写入控制字(末尾为0是写操作)
wait_ack(); //等待
IIC_send_data(0X00); //写入初始地址,用作寄存器指针 ???????地址是什么形式 指针不是?????
wait_ack(); //等待
IIC_Settime( 0X13, 0X10, 0X21, 0X02, 0X15, 0X40, 0X19); //写入数据 当前时间 根据寄存器写BCD码!!!!!!!!!!!!
IIC_stop(); //停止
|
|
|