极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20175|回复: 2

怎样用arduino读取AT24C02,AT24C04,~~AT24C256

[复制链接]
发表于 2014-6-25 20:30:53 | 显示全部楼层 |阅读模式
本人想详细了解AT24C系列的器件,读取一片AT24C02的数据马上写到另一片AT24C02里面,
还有怎样用串口显示循环读取一片AT24C02每一个地址数据,以及怎样对这些数据修改再写入,
求大神发帖讲解一下AT24C02,AT24C04,AT24C08,~~AT24C256的差别及内部物理地址怎样分布的。
回复

使用道具 举报

发表于 2014-6-27 02:29:14 | 显示全部楼层
本帖最后由 275891381 于 2014-6-27 03:08 编辑
  1. //直接给你个24c02简单的程序吧  不用附加库  别的带附加库也可以
  2. //byte 换为int也行, 多数据,大于255的数据自己for循环存吧,double float论坛有教程
  3. #include <Wire.h>
  4. int i = 0;
  5. int val;
  6. void Writebyte(byte DeviceAddress, byte DataAddress, byte Data)
  7. {
  8.   int rData = Data;
  9.   Wire.beginTransmission(DeviceAddress);
  10.   Wire.write(DataAddress);
  11.   Wire.write(rData);
  12.   Wire.endTransmission();
  13.   delay(10);
  14. }

  15. byte Readbyte(int DeviceAddress, byte DataAddress)
  16. {
  17.   byte rdata = 0xFF;
  18.   Wire.beginTransmission(DeviceAddress);
  19.   Wire.write(DataAddress);
  20.   Wire.endTransmission();
  21.   Wire.requestFrom(DeviceAddress, 1);
  22.   delay(10);
  23.   if (Wire.available())
  24.   {
  25.     rdata = Wire.read();
  26.   }
  27.   delay(10);
  28.   return rdata;
  29. }

  30. void setup()
  31. {
  32.   Wire.begin();
  33.   Serial.begin(9600);
  34. }

  35. void loop()
  36. {


  37.     if (i > 0xFF)
  38.     {
  39.       i = 0x00;
  40.     }
  41.     Writebyte(0x50, i, i);
  42.     val = Readbyte(0x50, i);
  43.     i++;
  44.     Serial.println(val);

  45. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-5-20 15:04:12 | 显示全部楼层
275891381 发表于 2014-6-27 02:29

循环怎么弄
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 00:40 , Processed in 0.046748 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表