首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

QG8的I2C问题求救

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++)
{;}
}
}




你有没有看过信号波形,从机是否发出了ACK应答信号?
海纳百川  有容乃大

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

仁者爱人

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

Bootloader,TCP/IP, 数字化电源控制 MCU应用专家 QQ:524673287
返回列表