最近在调STM8 的I2C(不想搞模拟的I2C),结果I2C没有调通,不知道问题所在,软件是参考I2C EEPROM固件那个程序写的。初始化如下:
void IIC_Init(void)
{
UCHAR temp;
CLK_PCKENR1 |= 0x01;
I2C_CR1 = 0x00; //禁止I2C外设
I2C_FREQR = 0x04; //输入外设时钟频率为1MHz
I2C_CCRH = 0x00;
I2C_CCRL = 0x05; //SCK时钟为100kHz
I2C_CR1 = 0x01; //开启I2C外设
I2C_CR2 |= 0x04; //当前接收字节返回应答
I2C_OARL = 0x86; //自身地址
I2C_OARH = 0x40;
I2C_SR2 = 0;
temp = I2C_SR1;
temp = I2C_SR3;
}
请高手帮帮忙;
1,这个初始化我是按照SPEC主模式的步骤写的,其中的输出频率不知道是不是100K
2,STVP的OPTION也配置为I2C. |