已经被I2C折磨几天了。官方DEMO有问题,又仔细看了大家的帖子和英文PDF手册,发现一个可能的大BUG和小BUG。导致在EV6事件通不过。
以STM32当MASTER,写1个字节为例。
/* Send STRAT condition */ I2C_GenerateSTART(I2C1, ENABLE);
/* Test on EV5 and clear it */ while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));
前面这两步正常。EV5顺利通过。然后先写地址+R/W数据0xA0 /* Send EEPROM address for write */ I2C_Send7bitAddress(I2C1, EEPROM_ADDRESS, I2C_Direction_Transmitter); |