[PIC®/AVR®/dsPIC®产品] Arduino下使用I2C读写FM24C02C两线制EEPROM

[复制链接]
 楼主| gaoyang9992006 发表于 2023-11-26 12:38 | 显示全部楼层 |阅读模式
AVR很适合用Arduino开发,可以使用通用的编程规范与库函数。
  1. #include "Wire.h"

  2. #define I2C_DEV_ADDR 0x50


  3. uint8_t read_fm24c02(uint8_t reg)
  4. {
  5.   uint8_t dat=0;
  6.   Wire.beginTransmission(I2C_DEV_ADDR);
  7.   Wire.write(reg);
  8.   Wire.endTransmission();  
  9.   Wire.requestFrom(I2C_DEV_ADDR,1);
  10.   if (Wire.available())
  11.   {
  12.     dat = Wire.read();          // 读取数据字节
  13.   }
  14.   return dat;
  15. }

  16. void write_fm24c02(uint8_t reg,uint8_t dat)
  17. {
  18.   Wire.beginTransmission(I2C_DEV_ADDR);
  19.   Wire.write(reg);
  20.   Wire.write(dat);
  21.   Wire.endTransmission();
  22. }

  23. void setup()
  24. {
  25.   Serial.begin(115200);
  26.   Wire.begin();
  27.   write_fm24c02(11,0xF0);
  28.   for(uint8_t i=0;i<0xFF;i++)
  29.   {
  30.     Serial.print("REG[");Serial.print(i);Serial.print("]= 0x");Serial.println(read_fm24c02(i),HEX);   
  31.   }
  32. }

  33. void loop()
  34. {

  35. }
测试数据

执行效果非常好。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| gaoyang9992006 发表于 2023-11-26 12:39 | 显示全部楼层

地址与写时序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| gaoyang9992006 发表于 2023-11-26 12:39 | 显示全部楼层
读时序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Bowclad 发表于 2023-11-27 14:03 来自手机 | 显示全部楼层
感觉avr也就在arduino上用的多了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16356

帖子

221

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16356

帖子

221

粉丝
快速回复 在线客服 返回列表 返回顶部