蓝桥杯嵌入式赛道STM32G4对EEPROM的读写

10 阅读1分钟

M24C02 是 ST 意法半导体推出的 2Kbit(256×8bit)串行 I²C EEPROM,以宽压、高可靠、易集成著称,适合嵌入式系统的非易失性小容量数据存储STMicroelectronics。以下从核心参数、关键特性、结构与寻址

  1. 灵活寻址:器件地址前四位固定为 1010,后三位由 A0/A1/A2 引脚电平决定,最多可在同总线上挂 8 片。
  2. 硬件写保护:WP 引脚为高电平时锁定全部存储区,防止误写。
  3. 丰富读取:支持随机读取、顺序读取,地址自动递增。
  4. 特殊版本:部分型号含 16 字节 ID 页,可存设备标识或关键参数,部分可永久锁定为只读STMicroelectronics。
  5. 低功耗:待机电流 μA 级,适合电池供电场景。

原理图:

image.png

往M24C02中读写数据,首先要确定设备地址和内存地址。

代码展示 写入M24C02

void eeprom_write(uint8_t addr,uint8_t dat)
{
	 I2CStart();
	 I2CSendByte(0xa0);
	 I2CWaitAck();
	 I2CSendByte(addr);
     I2CWaitAck();	
	 I2CSendByte(dat);
	 I2CSendAck();
	 I2CStop(); 
}

读出M24C02

uint8_t eeprom_read(uint8_t addr)
{
	 I2CStart();		 //IIC起始
	 I2CSendByte(0xa0);  //写入读取的设备地址
     I2CWaitAck();		 //等待应答
	 I2CSendByte(addr);  //写入内存地址
	 I2CWaitAck();		  //等待应答
	 I2CStop();	     //停止IIC 
						
	 I2CStart();		//IIC起始
	 I2CSendByte(0xa1); //写入读取的设备地址
     I2CWaitAck();		//等待应答
	 uint8_t dat=I2CReceiveByte();    //读取数据存入dat中
	 I2CSendNotAck();
	 I2CStop();			//停止IIC 
	 return dat;
}