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()
{
}
测试数据
执行效果非常好。
|