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;
}

}

posted on 2018-08-28 15:12  朱光铭  阅读(599)  评论(0)    收藏  举报

导航