EEPROM读写不同类型数据

写入u16类型的数据

u16 u16_write = 1234;
u16 u16_read = 0;
Write_AT24c02(0x00,u16_write/256);
Delay_Ms(5);
Write_AT24c02(0x01,u16_write%256);
Delay_Ms(5);
u16_read = Read_AT24c02(0x00)*256+Read_AT24c02(0x01);

写入float类型的数据,保留小数后四位

float float_write = 3.1415;
float float_read = 0;
Write_AT24c02(0x03,(u16)(float_write*1000)/256);
Delay_Ms(5);
Write_AT24c02(0x04,(u16)(float_write*1000)%256);
Delay_Ms(5);
float_read = (Read_AT24c02(0x03)*256+Read_AT24c02(0x04))/1000.f;
  • 浮点数的转化
float float_read;
float_read=5555/1000;
printf("float_read=%f\n",float_read);
//float_read=5.000000     这样的写法不能保留小数
float_read=5555.f/1000;float_read=5555/1000.f;
float_read=(float)5555/1000;float_read=5555/1000(float);
//float_read=5.555000     第二种比较low

写入负数

s8 minus_write = -23;//s8表示有符号类型,若为s16与u16分两次写入写法一样
if(minus_write<0)
{
Write_AT24c02(0x06,'-');
Delay_Ms(5);
	Write_AT24c02(0x07,-minus_write);
	Delay_Ms(5);
}
if(Read_AT24c02(0x06)=='-')
{
	minus_read = 0 - Read_AT24c02(0x07);
}

写入字符串,字符以ASCII码存储

u8 write_str[]="hello world";
u8 str_read[11]={0};
for(i=0;i<sizeof(write_str);i++)
{
	Write_AT24c02(0x10+i,str[i]);
	Delay_Ms(5);
}
for(i=0;i<sizeof(write_str);i++)
{
	read_str=Read_AT24c02(0x10+i);
}

利用共同体读写

  • float小数的读写
union eeprom_float
{
   float a;  
   u8 b[4];
}float_write,float_read;

float_write.a = 3.1415926;
for(i=0;i<sizeof(float);i++)
{
	Write_AT24c02(0x10+i,float_write.b[i]);
	Delay_Ms(5);
}
for(i=0;i<sizeof(float);i++)
{
	float_read.b[i]=Read_AT24c02(0x10+i);
}
  • 负数的读写
union eeprom_s16
{
   s16 a;  
   u8 b[2];
}s16_write,s16_read;

s16_write.a = -1234;
for(i=0;i<sizeof(s16);i++)
{
	Write_AT24c02(0x20+i,s16_write.b[i]);
	Delay_Ms(5);
}
for(i=0;i<sizeof(s16);i++)
{
	s16_read.b[i]=Read_AT24c02(0x20+i);
}

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值