最近在学习EEPROM,关于光盘里AT24C02存储小数部分,有点疑问:.......
long double cal_p[6] ={0.1, 1.1, 3.1, 4.02, 6.3, 0.01};
long double cal_test[6]={0};
.......
I2C_EE_BufferWrite((void*)cal_p, 1, sizeof(cal_p));
.......
I2C_EE_BufferRead((void*)cal_test, 1, sizeof(cal_test));
for( k=0; k<6; k++ )
printf(&quot;%LF\r\n&quot;, cal_test[k]);
1、在调用I2C_EE_BufferWrite,I2C_EE_BufferRead这两个函数,感觉有点迷糊,这两个函数
里第一个形参都是整形的(u8),这里调用的时候是强制转换为(void*)cal_p;
2、I2C_EE_BufferRead((void*)cal_test, 1, sizeof(cal_test));从EEPROM里读出来的肯定是sizeof(cal_test)
个字节数,怎么就还原成了浮点数?打个比方,0.1占4个字节,保存进入肯定是占4个地址,读出来那也
肯定是4个数,怎么就还原成0.1了?
关于这部分,希望能详细给大家讲讲,谢谢哈!!
|
|