EFR32保存数据到FLASH
第一步:定义
#define CREATOR_CS5463_VDCOFF 0xB003
#define NVM3KEY_CS5463_VDCOFF ( NVM3KEY_DOMAIN_ZIGBEE | 0xB003 )
#define CREATOR_CURRENT_SUMMATION_DELIVERED_1 0xB000
#define NVM3KEY_CS5463_CURRENT_SUMMATION_DELIVERED_1 ( NVM3KEY_DOMAIN_ZIGBEE | 0xB000)
// Types for the tokens
#ifdef DEFINETYPES
typedef uint8_t tokType_current_summation_delivered[6]; //数组形式的
#endif // DEFINETYPES
#ifdef DEFINETOKENS
DEFINE_BASIC_TOKEN(CS5463_VDCOFF, uint32_t, 0x00ffffff)
DEFINE_BASIC_TOKEN(CURRENT_SUMMATION_DELIVERED_1, tokType_current_summation_delivered, {0,0,0,0,0,0}) //数组形式的
#endif // DEFINETOKENS
第二步:读
uint32_t GetCs5463Vdcoffset(void)
{
uint32_t Value=0;
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_VDCOFF);
return Value;
}
uint8_t ptr[6];
halCommonGetToken((tokType_current_summation_delivered *)ptr, TOKEN_CURRENT_SUMMATION_DELIVERED_1); //数组形式的
第三步:写
uint8_t allZeroData[6]; \
MEMSET(allZeroData, 0, 6); \
halCommonSetToken(TOKEN_CURRENT_SUMMATION_DELIVERED_1, data); //数组形式的
void SetCs5463Vdcoffset(uint32_t Value)
{
halCommonSetToken(TOKEN_CS5463_VDCOFF,(uint32_t *)&Value);
}
/***************************************
从FLSAH中读取数据
item: 表示读的是哪个数据
CS5463_VDCOFF 电压直流偏移
CS5463_IDCOFF 电流直流偏移
CS5463_VACOFF 电压交流偏移
CS5463_IACOFF 电流交流偏移
CS5463_IACGAIN 电流增益
CS5463_VACGAIN 电压增益
uint32_t 返回值
***************************************/
uint32_t GetCs5463CalDataFromFlash(uint32_t item)
{
uint32_t Value=0;
switch(item)
{
case CS5463_VDCOFF:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_VDCOFF);
break;
case CS5463_IDCOFF:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_IDCOFF);
break;
case CS5463_VACOFF:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_VACOFF);
break;
case CS5463_IACOFF:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_IACOFF);
break;
case CS5463_IACGAIN:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_IACGAIN);
break;
case CS5463_VACGAIN:
halCommonGetToken((uint32_t *)&Value, TOKEN_CS5463_VACGAIN);
break;
}
return Value;
}
/***************************************
从FLSAH中读取数据
item: 表示读的是哪个数据
CS5463_VDCOFF 电压直流偏移
CS5463_IDCOFF 电流直流偏移
CS5463_VACOFF 电压交流偏移
CS5463_IACOFF 电流交流偏移
CS5463_IACGAIN 电流增益
CS5463_VACGAIN 电压增益
uint32_t Value :
对应的条款的值
***************************************/
void SetCs5463CalDataToFlash(uint32_t Value,uint32_t item)
{
switch(item)
{
case CS5463_VDCOFF:
halCommonSetToken(TOKEN_CS5463_VDCOFF,(uint32_t *)&Value);
break;
case CS5463_IDCOFF:
halCommonSetToken(TOKEN_CS5463_IDCOFF,(uint32_t *)&Value);
break;
case CS5463_VACOFF:
halCommonSetToken(TOKEN_CS5463_VACOFF,(uint32_t *)&Value);
break;
case CS5463_IACOFF:
halCommonSetToken(TOKEN_CS5463_IACOFF,(uint32_t *)&Value);
break;
case CS5463_IACGAIN:
halCommonSetToken(TOKEN_CS5463_IACGAIN,(uint32_t *)&Value);
break;
case CS5463_VACGAIN:
halCommonSetToken(TOKEN_CS5463_VACGAIN,(uint32_t *)&Value);
break;
}
}
浙公网安备 33010602011771号