gaoyang9992006 发表于 2023-11-26 12:38

Arduino下使用I2C读写FM24C02C两线制EEPROM

AVR很适合用Arduino开发,可以使用通用的编程规范与库函数。
#include "Wire.h"

#define I2C_DEV_ADDR 0x50


uint8_t read_fm24c02(uint8_t reg)
{
uint8_t dat=0;
Wire.beginTransmission(I2C_DEV_ADDR);
Wire.write(reg);
Wire.endTransmission();
Wire.requestFrom(I2C_DEV_ADDR,1);
if (Wire.available())
{
    dat = Wire.read();          // 读取数据字节
}
return dat;
}

void write_fm24c02(uint8_t reg,uint8_t dat)
{
Wire.beginTransmission(I2C_DEV_ADDR);
Wire.write(reg);
Wire.write(dat);
Wire.endTransmission();
}

void setup()
{
Serial.begin(115200);
Wire.begin();
write_fm24c02(11,0xF0);
for(uint8_t i=0;i<0xFF;i++)
{
    Serial.print("REG[");Serial.print(i);Serial.print("]= 0x");Serial.println(read_fm24c02(i),HEX);   
}
}

void loop()
{

}
测试数据

执行效果非常好。

gaoyang9992006 发表于 2023-11-26 12:39


地址与写时序

gaoyang9992006 发表于 2023-11-26 12:39

读时序

Bowclad 发表于 2023-11-27 14:03

感觉avr也就在arduino上用的多了
页: [1]
查看完整版本: Arduino下使用I2C读写FM24C02C两线制EEPROM