| | 最近在学习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了?
 
 
 
 
 
 关于这部分,希望能详细给大家讲讲,谢谢哈!!
 
 
 | 
 |