这个初始化程序有错吗? 
WORD I2CInit( DWORD I2cMode )  
{ 
        PCONP |= (1 << 7); 
        PINSEL1 &= ~0x03C00000; 
         
        PINSEL1 |= 0x01400000;        // set PIO0.27 and PIO0.28 to I2C0 SDA and SCK // 
                                                        // function to 01 on both SDA and SCK. // 
        //--- Reset registers ---// 
        I20SCLL   = I2SCLL_SCLL; 
        I20SCLH   = I2SCLH_SCLH;         
         
        //--- Clear flags ---// 
        I20CONCLR = I2CONCLR_AAC | I2CONCLR_SIC | I2CONCLR_STAC | I2CONCLR_I2ENC;     
 
 
        if ( I2cMode == I2CSLAVE ) 
        { 
                I20ADR = PCF8594_ADDR;                         
        }    
 
 
         if ( install_irq( I2C0_INT, (void *)I2C0SlaveHandler, 0 ) == FALSE ) 
        { 
                return( FALSE ); 
        }                   
             
                           
         __nop();   __nop(); __nop(); 
        I20CONSET =  I2CONSET_I2EN | I2CONSET_AA; 
         
        return( TRUE ); 
}
 |