帮我写AT24C02的IIC通信协议代码,读写数据
时间: 2023-08-28 09:38:04 浏览: 84
好的,以下是AT24C02的IIC通信协议代码,包含写入和读取数据的函数:
```c
#include <Wire.h>
#define EEPROM_ADDRESS 0x50 // AT24C02的IIC地址
void writeByte(uint16_t eepromAddress, byte data) {
Wire.beginTransmission(EEPROM_ADDRESS);
Wire.write((int)(eepromAddress >> 8)); // 写入高字节地址
Wire.write((int)(eepromAddress & 0xFF)); // 写入低字节地址
Wire.write(data); // 写入数据
Wire.endTransmission();
delay(5); // 等待写入完成
}
byte readByte(uint16_t eepromAddress) {
byte data = 0;
Wire.beginTransmission(EEPROM_ADDRESS);
Wire.write((int)(eepromAddress >> 8)); // 写入高字节地址
Wire.write((int)(eepromAddress & 0xFF)); // 写入低字节地址
Wire.endTransmission();
Wire.requestFrom(EEPROM_ADDRESS, 1); // 请求读取1个字节数据
if (Wire.available()) { // 如果有数据可读
data = Wire.read(); // 读取数据
}
return data;
}
```
使用方法:
- 写入数据:`writeByte(地址, 数据);`
- 读取数据:`byte data = readByte(地址);`
其中,地址范围为0-255,数据范围为0-255。
阅读全文