怎样把浮点数存EEPROM,然后还原
1个回答
展开全部
你只需要提供2个函数:
1,从指定地址开始读取指定长度(字节)数据的函数。
2,从指定地址开始写入指定长度(字节)数据的函数。
有了这两个函数,任何类型/结构体/数组的存储于读取都可以鸡奸法了。
下面这就是鸡奸法:
//VS10XX数据保存在:SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings)之后
//读取VS10XX数据
//vs10xxdev:VS10XX数据
void vs10xx_read_para(_vs10xx_obj * vs10xxdev)
{
AT24CXX_Read(SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings),(u8*)vs10xxdev,sizeof(_vs10xx_obj));
}
//写入VS10XX数据
//vs10xxdev:VS10XX数据
void vs10xx_save_para(_vs10xx_obj * vs10xxdev)
{
OS_CPU_SR cpu_sr=0;
OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)
AT24CXX_Write(SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings),(u8*)vs10xxdev,sizeof(_vs10xx_obj));
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}
1,从指定地址开始读取指定长度(字节)数据的函数。
2,从指定地址开始写入指定长度(字节)数据的函数。
有了这两个函数,任何类型/结构体/数组的存储于读取都可以鸡奸法了。
下面这就是鸡奸法:
//VS10XX数据保存在:SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings)之后
//读取VS10XX数据
//vs10xxdev:VS10XX数据
void vs10xx_read_para(_vs10xx_obj * vs10xxdev)
{
AT24CXX_Read(SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings),(u8*)vs10xxdev,sizeof(_vs10xx_obj));
}
//写入VS10XX数据
//vs10xxdev:VS10XX数据
void vs10xx_save_para(_vs10xx_obj * vs10xxdev)
{
OS_CPU_SR cpu_sr=0;
OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)
AT24CXX_Write(SYSTEM_PARA_SAVE_BASE+sizeof(_system_setings),(u8*)vs10xxdev,sizeof(_vs10xx_obj));
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询