在写NANO120驱动24C02的程序中,对I2C的初始化如下:
void I2C0_Init()
{
//使能I2C0引脚
SYS->PA_L_MFP &= ~(SYS_PA_H_MFP_PA8_MFP_Msk | SYS_PA_H_MFP_PA9_MFP_Msk);
SYS->PA_L_MFP |= (SYS_PA_H_MFP_PA9_MFP_I2C0_SCL | SYS_PA_H_MFP_PA8_MFP_I2C0_SDA);
//使能I2C0时钟
CLK_EnableModuleClock(I2C0_MODULE);
//使能I2C
I2C0->CON |=I2C_CON_IPEN_Msk;
/* Enable I2C0 interrupt */
I2C_EnableInt(I2C0);
NVIC_EnableIRQ(I2C0_IRQn);
DEBUGMSG("I2C0 initial over!\n");
}
然后在读写操作24C02中,对I2C的控制寄存器进行写操作,发现无法写入,以下是写入寄存器的代码:
I2C_SET_CONTROL_REG(I2C0,I2C_STA);
I2C_SET_CONTROL_REG(I2C0,I2C_SI);
请问如何解决?求大神! |