2019-07-21 05:38发布
aiyeba 发表于 2016-7-28 09:25 看来你是没有理解深刻一点。无论是何种的存储,都是一个个字节存储的。 你说结构体存储也得换算成一个一个 ...
最多设置5个标签!
{
u16 i=0;
u16 word_count=0;
u32 address;
u32 *pu=NULL;
if(length==0)
{
return 0;
}
__set_PRIMASK(1);
word_count=length/4+(length%4!=0);
pu=(u32 *)buf;
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR);
FLASH_ErasePage(addr);
address=addr;
FLASH_ProgramWord(address,flag);
address=address+4;
for(i=0;i<word_count;i++)
FLASH_ProgramWord(address+i*4,pu[i]);
FLASH_Lock();
__set_PRIMASK(0);
return word_count*4;
}
地址,标记,取结构体首地址,结构体大小
Pro_WriteDataToStore(PRO_ESP4_STORE_FLASH_ADDRESS,PRO_ESP4_STORE_FLAG,(u8 *)&ESP_Store.pwd,sizeof(ESP_Store.pwd));
你说结构体存储也得换算成一个一个字节的。
给你个简单的思路,你可以写一个函数,把结构体里面的字节全部转到一个buff里面,然后
把这个buff扔到EEPROM或者是Flash的写函数里面就可以了。当然还有更高级的办法,
数据类型强制转换,字节对齐。 这个不告诉你
那机构提的某一个单独变量 能单独读取出来么 是不是只能一次性全部读出来
一周热门 更多>