Arduino EEPROM 的操作

#include <EEPROM.h>
struct MyObject{
  float field1;
  byte field2;
  char name[10];
};
void setup(){
  Serial.begin(9600);
  while (!Serial) {
      ; 
   } 
  float f = 123.456f;
  unsigned int eeAddress = 0;   
  EEPROM.write( eeAddress, f );
  Serial.println("Written float data type!");
   
  MyObject customVar = {
     3.14f,
     65,
     "Working"
   };
  eeAddress += sizeof(float);
  //EEPROM.write( eeAddress, customVar );
  EEPROM_write_block  ((unsigned char*)&customVar,eeAddress,sizeof(MyObject));
  Serial.print( "Written custom data type! \n\nView the example sketch eeprom_get to see how you can retrieve the values!" );
 
 MyObject xixi ;
 
 EEPROM_read_block((unsigned char*)&xixi,eeAddress,sizeof(MyObject));
 
 Serial.print(xixi.field1);
 Serial.print(xixi.field2);
 Serial.print(xixi.name);
 
 }
 
 void loop(){ 
     //int address = 0;
     //float f ;
    // EEPROM.read(address,f);
   //  address += sizeof(MyObject); 
     
 }
 
 
 void EEPROM_write_block(unsigned char *memory_block, unsigned int start_address, unsigned int block_size)
{
   unsigned char Count = 0;
   for (Count=0; Count < block_size; Count++)
   {  
       EEPROM.write(start_address + Count, memory_block[Count]);
   }
}

void EEPROM_read_block(unsigned char *memory_block, unsigned int start_address, unsigned int block_size)
{
   unsigned char Count = 0;
   for (Count=0; Count < block_size; Count++)
   {
       memory_block[Count]= EEPROM.read(start_address + Count);
   }
}


 


 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值