| 
 
| 我在试写pic的i2c通信时,发现从器件总是没响应,就是ackstat被置为了,请大家帮忙看下哪里有问题了。程序在下 void I2C_initial(void)
 {
 SSPCON1=0x38;
 //TRISC=0xff;//TRISC|0xf7;
 SSPADD=0x07;
 SSPSTAT=0x80;
 SSPCON2=0;
 // SSPCON1bits.SSPEN=1;
 }
 void write(void)
 {
 PIR1bits.SSPIF=0;
 SSPCON2bits.SEN=1;
 while(!PIR1bits.SSPIF)
 PIR1bits.SSPIF=0;
 SSPBUF=0xa0;                      到此处从器件都没响应
 if(SSPCON2bits.ACKSTAT==1)
 {
 SSPCON2bits.RSEN=1;
 }
 /*while(!PIR1bits.SSPIF)
 PIR1bits.SSPIF=0;
 SSPBUF=add;
 while(!PIR1bits.SSPIF)
 PIR1bits.SSPIF=0;
 for(i=0;i<5;i++)
 {
 SSPBUF=send_buf[i];
 //while(SSPSTATbits.BF==0);
 while(!PIR1bits.SSPIF)
 PIR1bits.SSPIF=0;
 }
 | 
 |