28335读写i2ceeprom的例程
时间: 2023-08-10 19:01:07 浏览: 117
示例代码如下:
```C++
#include <Wire.h>
#define EEPROM_ADDR 0x50 // I2C EEPROM的地址
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
writeValue();
delay(2000);
readValue();
delay(2000);
}
void writeValue() {
Wire.beginTransmission(EEPROM_ADDR);
Wire.write(0x00); // 写入数据的起始地址
Wire.write(0x55); // 要写入的数值
Wire.write(0xAA); // 要写入的数值
Wire.endTransmission();
delay(10);
}
void readValue() {
Wire.beginTransmission(EEPROM_ADDR);
Wire.write(0x00); // 读取数据的起始地址
Wire.endTransmission();
Wire.requestFrom(EEPROM_ADDR, 2); // 读取2个字节的数据
while(Wire.available()) {
byte data = Wire.read();
Serial.println(data, HEX); // 打印读取到的数据
}
Serial.println();
}
```
这个示例程序演示了如何使用Wire库来读写I2C EEPROM。首先在setup()函数中开始I2C和串口通信。然后在loop()函数中,每隔2秒调用一次writeValue()函数和readValue()函数。
writeValue()函数用于向EEPROM中写入数据。首先调用Wire.beginTransmission()函数来指定要写入数据的I2C地址。然后通过Wire.write()函数来写入数据的起始地址和要写入的数值。最后调用Wire.endTransmission()函数来结束传输,并延时10毫秒。
readValue()函数用于从EEPROM中读取数据。首先调用Wire.beginTransmission()函数来指定要读取数据的I2C地址,然后通过Wire.write()函数来写入要读取数据的起始地址。接着调用Wire.endTransmission()函数来结束传输。
然后调用Wire.requestFrom()函数来请求从EEPROM读取2个字节的数据。在循环中使用Wire.available()函数来判断是否有数据可读取。如果有数据可读取,就通过Wire.read()函数读取数据,并使用Serial.println()函数打印出读取到的数据。最后打印一个空行来进行分隔。
请注意,示例代码中的EEPROM地址是0x50,请根据你的EEPROM地址修改代码。另外,此示例假设I2C EEPROM的页大小为2字节,并在写入数据时不考虑页边界问题。如果需要考虑页边界问题,需要进行额外的处理。
阅读全文