Board logo

标题: QG8的I2C问题求救 [打印本页]

作者: popfan    时间: 2009-7-16 23:58     标题: QG8的I2C问题求救

最近在调试QG8的I2C模块,调试了很久都没成功,程序老是停在等待ACK " while(IICS_RXAK); "的位置,也就是QG8没有收到从端的ACK信号. 手册都看遍了,觉得没有什么错误啊,这里把程序贴出来,大家帮忙看看吧,万分感谢!!!

void main(void) {


//ICGTRM=0X80;
SOPT1_COPE = 0; //disable WatchDog
/* include your code here */
SCI_INIT();
Port_INIT();
PTAD_PTAD0 = 0;
I2c_init();
delay(100);
PTAD_PTAD0 = 1;
delay(100);
EnableInterrupts; /* enable interrupts */

WriteBytesI2C(BH1710_ADDRESS,0) ;


while(1) {
}

}



//-------------------------------------------------
void WriteBytesI2C(unsigned char slaveAddress,char data)
{
char Temp;
Temp = 0x00;
Temp = slaveAddress<<1;

while(IICS_BUSY==1)
{;}
IICC_MST = 1;
IICC_TXAK = 0;
IICS_IICIF = 1;
IICC_TX = 1; /* Select Transmit Mode 发送,伴随着下面MST从0变1 */


IICD = Temp; /* Send slave device selected address */

while(!IICS_IICIF);
IICS_IICIF = 1;
while(IICS_RXAK);

IICD = data;

while(!IICS_IICIF);
IICS_IICIF = 1;
while(IICS_RXAK);

IICC_MST = 0;

}

//-----------------------------------------------------

//-------------------------------------
void Port_INIT(void){


//----- Initialized the other pin
PTADD_PTADD0 = 1; // set pin as output
PTAPE_PTAPE0 = 1; //enable internal pull up
PTADS_PTADS0 = 1; // enable how output driver
PTAD_PTAD0 = 1; // default value is high

}

//----------------------------
void I2c_init(void)
{

/* Configure interfaces. Set our IIC adress. */
IICC_IICEN = 1; /* Enable IIC_module */
IICC_TXAK = 0;
IICC_MST = 0;
IICA =0x00; /* IIC Address */
IICF = 0x40; /* Set IIC frequency */
I2C_STEP = IIC_READY_STATUS;
}
//-----------------------------
void SCI_INIT(void) {

// SCIBD =4530000/16/scibandrate; //设置波特率
SCIBD = 29;
SCIC1=0x00;
SCIC2=0x2C;//使能接受中断
}

//----------------------------
void delay(int x){

int i,j;
for(i=0;i<x;i++) {
for(j=0;j<100;j++)
{;}
}
}





作者: strongchen    时间: 2009-7-21 14:52

你有没有看过信号波形,从机是否发出了ACK应答信号?
作者: ma.jh    时间: 2009-7-28 12:47

我的IIC挂了一个接口芯片可以通,但由加挂一个24C64后,无法与后者相通,表现与楼主一样,郁闷。


作者: Henry_Yu    时间: 2009-8-1 22:47

仔细查查Slave的地址对不对!






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