如何页写一个32字节结构体近AT24C08
时间: 2023-05-18 09:06:17 浏览: 81
你可以使用以下代码来写一个32字节结构体到AT24C08:
#include <Wire.h>
#include <EEPROM.h>
struct myStruct {
int a;
float b;
char c[10];
};
void writeStructToEEPROM(int address, myStruct data) {
byte* p = (byte*)(void*)&data;
for (int i = 0; i < sizeof(data); i++) {
EEPROM.write(address++, *p++);
}
}
void readStructFromEEPROM(int address, myStruct& data) {
byte* p = (byte*)(void*)&data;
for (int i = 0; i < sizeof(data); i++) {
*p++ = EEPROM.read(address++);
}
}
myStruct myData = { 123, 3.14, "hello" };
void setup() {
Wire.begin();
Serial.begin(9600);
writeStructToEEPROM(0, myData);
}
void loop() {
myStruct data;
readStructFromEEPROM(0, data);
Serial.print("a=");
Serial.print(data.a);
Serial.print(" b=");
Serial.print(data.b);
Serial.print(" c=");
Serial.println(data.c);
delay(1000);
}
这个代码使用了EEPROM库来读写数据,它可以将一个结构体写入AT24C08的指定地址,并从指定地址读取结构体。在这个例子中,我们定义了一个包含一个整数、一个浮点数和一个字符数组的结构体,然后将它写入AT24C08的地址0。在循环中,我们从AT24C08的地址0读取结构体,并将其打印到串口上。