本帖最后由 加饭 于 2014-10-23 10:44 编辑
学了Arduino两个月,UNO让人尴尬的内存,让有强迫症的我感觉不自在,尝试使用外部EEPROM时,却发现很多教程之间存在一个问题——仅仅适用于一种EEPROM,2K的代码,用在32K的就不行了~经过两个月的苦心钻研,参考各位的库文件,经过自行修改和调试,写了一个兼容性较为客观的库文件~如果在使用过程中遇到问题,请大家留言指出,互相交流~
自行编写,纯属兴趣,多多包涵~ - #include <AT24CXXX.h>
- #include <Wire.h>
- AT24CXXX ROM_512;
- void setup()
- {
- Wire.begin(); //启动I2C通信
- Serial.begin(9600);
-
- ROM_512.Memory_Size(512);
- //512K内部地址: 0x0000——0xffff
- //32K内部地址: 0x0000——0x0fff
- //2K内部地址: 0x0000——0x00ff
- }
- void loop()
- {
- byte a0 = 0xff; byte a1 = 0xff;
-
- //WriteByte(硬件地址位,内部地址位,一个字节数据)
- ROM_512.WriteByte(0x50 ,0x0000 ,0xaa);
- ROM_512.WriteByte(0x50 ,0x00ff ,0xbb);
-
- //Readbyte(硬件地址位,内部地址位)
- a0 = ROM_512.ReadByte(0x50 ,0x0000);
- a1 = ROM_512.ReadByte(0x50 ,0x00ff);
-
- Serial.print("a0=");delay(10);
- Serial.println( a0,HEX );delay(1000);
- Serial.print("a1=");delay(10);
- Serial.println( a1,HEX );delay(1000);
- }
复制代码 |