用Arduino驱动24C02芯片进行数据读写的程序

作者:cambrain     发布时间:2025-07-18     点击数:1    

24c02_drive.ino

#include <Wire.h>
#define EEPROM_ADDRESS 0x50  // 24C02的I2C地址
void setup() {
  Wire.begin();        // 初始化I2C总线
  Serial.begin(9600);  // 初始化串口通信
  Serial.println("24C02 EEPROM 测试程序");
  
  // 写入测试数据
  writeEEPROM(0, 'H');
  writeEEPROM(1, 'e');
  writeEEPROM(2, 'l');
  writeEEPROM(3, 'l');
  writeEEPROM(4, 'o');
  
  delay(10);  // 等待写入完成
  
  // 读取并显示数据
  Serial.print("从EEPROM读取的内容: ");
  for (int i = 0; i < 5; i++) {
    char c = readEEPROM(i);
    Serial.print(c);
  }
  Serial.println();
}
void loop() {
  // 主循环可以留空,因为我们只在setup()中执行一次读写测试
}
// 向EEPROM写入一个字节的数据
void writeEEPROM(int address, byte data) {
  Wire.beginTransmission(EEPROM_ADDRESS);
  Wire.write((int)(address >> 8));  // 发送高地址字节
  Wire.write((int)(address & 0xFF)); // 发送低地址字节
  Wire.write(data);                 // 发送数据
  Wire.endTransmission();           // 结束传输
  
  delay(5);  // 等待写入完成(24C02的写入周期约为5ms)
}
// 从EEPROM读取一个字节的数据
byte readEEPROM(int address) {
  byte data = 0xFF;
  
  Wire.beginTransmission(EEPROM_ADDRESS);
  Wire.write((int)(address >> 8));  // 发送高地址字节
  Wire.write((int)(address & 0xFF)); // 发送低地址字节
  Wire.endTransmission();
  
  Wire.requestFrom(EEPROM_ADDRESS, 1); // 请求1个字节的数据
  if (Wire.available()) {
    data = Wire.read();  // 读取数据
  }
  
  return data;
}

上面是一个用于Arduino驱动24C02芯片进行数据读写的程序。这个程序提供了基本的初始化、写入和读取功能,你可以根据需要修改或扩展它。 这个程序的工作原理如下:

1.初始化

在`setup()`函数中初始化I2C总线和串口通信,然后写入测试数据并读取显示。

2.写入函数

`writeEEPROM()`函数通过I2C发送数据到指定地址,并在发送后延时等待写入完成。

3.读取函数

`readEEPROM()`函数通过I2C从指定地址读取数据。 使用时需要注意: 

(1),24C02的I2C地址可能需要根据实际连接调整(默认是0x50)。 

(2),确保Arduino的SDA和SCL引脚正确连接到24C02的对应引脚。 

(3),写入操作后需要适当延时(至少5ms),确保数据成功写入。