24C02 EEPROM存储器
模块来源
规格参数
工作电压:1.8V-5.5V
工作电流:最大3mA
通信接口:IIC
内存:2048位
时钟速度:5V时最大1000Khz,其余为400Khz
硬件连接
- VCC:连接到开发板的5V。
- GND:连接到开发板的GND。
- SDA(串行数据线):连接到开发板的A4(SDA)。
- SCL(串行时钟线):连接到开发板的A5(SCL)。
使用方法
c
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月18日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
#include <Wire.h>
#define EEPROM_ADDRESS 0x50 // AT24C02的I2C地址
void setup() {
Wire.begin(); // 初始化I2C通信
Serial.begin(9600); // 开始串行通信以观察结果
writeEEPROM(EEPROM_ADDRESS, 0, 123); // 将数字123写入AT24C02的地址0
delay(100); // 短暂延时以确保写入完成
int value = readEEPROM(EEPROM_ADDRESS, 0); // 从地址0读取值
Serial.print("Read value: ");
Serial.println(value); // 打印读取的值
}
void loop() {
// 在这个例子中不执行操作
}
void writeEEPROM(int deviceaddress, unsigned char eeaddress, byte data ) {
Wire.beginTransmission(deviceaddress);
Wire.write(eeaddress); // EEPROM字节
Wire.write(data);
Wire.endTransmission();
delay(5); // 等待写入完成
}
byte readEEPROM(int deviceaddress, unsigned char eeaddress ) {
byte rdata = 0xFF;
Wire.beginTransmission(deviceaddress);
Wire.write(eeaddress); // EEPROM字节
Wire.endTransmission();
Wire.requestFrom(deviceaddress, 1); // 请求1字节的数据
if (Wire.available()) rdata = Wire.read();
return rdata;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56