我在试写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;
} |