1. 概述
MiniSTM32 开发板板载的 EEPROM 芯片型号为 24C02。该芯片的总容量是 256个字节,该芯片通过 I2C 总线与外部连接。这里直接采用原子板上的 AT24C02 ,主要是软件编程方面的学习。
2. 硬件连接

A2、A1、A0 三个引脚直接接地。供电:(VCC = 2.7V to 5.5V)
器件地址设置:

对于AT24C02:Addr--->0xA0(写)/ 0xA1(读)。
单字节写入:

//--------------------------------------------------------------------------------------------------------------------------// 函 数 名: ee_at24cxx_write_byte// 功能说明: eeprom写一个字节数据// 形 参: write_addr:写入地址// write_byte:写入数据// 返 回 值: 无// 日 期: 2020-03-22// 备 注: eeprom小于16K bits// 作 者: by 霁风AI//--------------------------------------------------------------------------------------------------------------------------bool ee_at24cxx_write_byte(uint16_t write_addr, uint8_t write_byte){
I2c_Start();
I2c_SendOneByte(AT24CXX_ADDR | ((write_addr / 256) <1)); //发送设备地址+数据地址高3位(<16K:1010 + p2p1p0 + r/w)
if (I2c_WaitAck(I2C_WAIT_TIME) == I2C_NACK)
{
return false;
}
I2c_SendOneByte(write_addr % 256); //设备地址低8位
if (I2c_WaitAck(I2C_WAIT_TIME) == I2C_NACK)
{
return false;
}
I2c_SendOneByte(write_byte); //写入的数据
if (I2c_WaitAck(I2C_WAIT_TIME) == I2C_NACK)
{
return false;
}
I2c_Stop();
delay_ms(5 ); //写完一个字节需要延时重新开启总线
return true;
}
按页写入: