atm32怎么方便的将一个结构体存入flash并且原样读写出来

2019-08-14 03:42发布

本帖最后由 rindy 于 2017-9-2 11:53 编辑

假如有这样一个结构体数组,怎么存入flash呢,并且原样读写出来,之前只写过一些简单变量的存储与读写操作,不知道结构体怎么操作
struct User   
{
        char  user_physical[20];
        char  user_custom[20];
        char user_pa[20];
        char user_flag;
};
struct   User      user1[60];//添加60条数据,现在要把这60条结构体数据存放到flash需要怎么操作?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
aiyeba
2019-08-14 06:30
存进去的话,可以使用指针来操作

比如:struct User  *user1  ;

u8 *p;
p=(U8*)user1;      
在使用单字节写入时候     write_data(*p++);   这种写法是 把新的指针指向结构体的初始位置

然后按照u8类型进行存储。p++每次偏移一个字节。不过需要注意的是,你不能越界了,也就是循环写入的次数最多时sizeof(struct User);

读出来就好办了。先放到一个buff里面   然后再赋值到各个变量。

一周热门 更多>