大体24fc1025用
Embed:
(wiki syntax)
Show/hide line numbers
I2CEEPROM.cpp
00001 #include "I2CEEPROM.h" 00002 00003 I2CEEPROM::I2CEEPROM(PinName sda, PinName scl, int address, int freq) : i2c(sda,scl) { 00004 i2c.frequency(freq); 00005 memadd = address; 00006 } 00007 00008 void I2CEEPROM::write(int bank, unsigned short address, const char *data, int count) { 00009 char *bytes = new char[count+3]; 00010 bytes[0] = 0xa1 | (bank << 3); 00011 bytes[1] = address >> 8; 00012 bytes[2] = address & 0xff; 00013 for(int i = 0; i < count; i++) bytes[i + 3]=data[i]; 00014 i2c.start(); 00015 i2c.write(memadd, bytes, count + 3); 00016 delete bytes; 00017 } 00018 00019 void I2CEEPROM::read(int bank, unsigned short address, char *data, int count) { 00020 char *info = new char[3]; 00021 info[0] = 0xa1 | (bank << 3); 00022 info[1] = address >> 8; 00023 info[2] = address & 0xff; 00024 i2c.start(); 00025 i2c.write(memadd, info, count + 3); 00026 for(int i = 0; i < count; i++) data[i]=i2c.read(i < (count - 1)); 00027 delete info; 00028 }
Generated on Mon Jul 25 2022 17:18:41 by 1.7.2