如何方便的读写结构体到EEPROM中?

2020-02-06 10:09发布

f1946的片子,想写个结构体到eeprom中,但是
eeprom_write(unsigned char addr, unsigned char value);
只能写8位无符号数据,而我要操作的结构体却是有各种
数据的,例如long。

我不想用循环什么的一个字节一个字节读出来再
拼起来,或者把内存中的结构体打撒成为一个
字节一个字节的数据再写进去,感觉很繁琐,
有没有什么更好的办法?

别告诉我可以不使用eeprom_write等等函数,
直接用PC指针对EEPROM进行操作,那就太方便了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
banye2010
1楼-- · 2020-02-06 13:13
struct sensor_rom_t
{
    unsigned int addr;   
    unsigned char altimes;
    unsigned char exist;//设置的状态
    unsigned char ctr;
    unsigned char relay;
} ;
union cf_page
{
    struct sensor_rom_t s[ALMMAX];
    unsigned char str[sizeof(struct sensor_rom_t)*ALMMAX];        
} cf;
你自己体会下,把下面的str写到eeprom里就可以了
dalarang
2楼-- · 2020-02-06 13:55
指针+sizeof关键字
sunjianmax232
3楼-- · 2020-02-06 14:45
2楼的办法比较好,联合体内嵌结构体,结构体和数组占用同一块内存。
JYX2015
4楼-- · 2020-02-06 15:23
banye2010 发表于 2015-11-9 12:57
struct sensor_rom_t
{
    unsigned int addr;   

天才,你的方法太好了,虽然没怎么看懂
JYX2015
5楼-- · 2020-02-06 17:07
 精彩回答 2  元偷偷看……
xwkm
6楼-- · 2020-02-06 17:21
本帖最后由 xwkm 于 2015-11-10 14:46 编辑

eeprom_write((uint8_t *)&structx, sizeof(structx));

一周热门 更多>