一、导入官方软件IIC程序:
解释:CubeMX可以不用配置,使用软件IIC进行通信,在官方程序中,I2CInit()含有配置引脚的操作。
二、代码部分:
为方便操作,直接在i2c_hal.c中写EEPROM操作函数
EEPROM读操作:
uint8_t EEPROM_read(uint8_t addr){
//修改指针位置
uint8_t data = 0;
I2CStart();
I2CSendByte(0xA0);
I2CWaitAck();
I2CSendByte(addr);
I2CWaitAck();
I2CStop();
I2CStart();
I2CSendByte(0xA1);
I2CWaitAck();
data = I2CReceiveByte();
I2CSendNotAck();
I2CStop();
return data;
}
EEPROM写操作:
uint8_t EEPROM_write(uint8_t addr, uint8_t data){
I2CStart();
I2CSendByte(0xA0);
I2CWaitAck();
I2CSendByte(addr);
I2CWaitAck();
I2CSendByte(data);
I2CWaitAck();
I2CStop();
HAL_Delay(5);
}
写完代码后,在i2c_hal.h中声明
注意:AT24C02存储空间为256字节addr取值为0x00~0xFF。