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

2020-02-06 10:09发布

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

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

别告诉我可以不使用eeprom_write等等函数,
直接用PC指针对EEPROM进行操作,那就太方便了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
xwkm
1楼-- · 2020-02-07 14:02
JYX2015 发表于 2015-11-9 18:15
仔细想了想,没什么问题。反正我把指针变为8位一挪,然后挪
sizeof(结构体)那么多次写进EEPROM里面去。 ...

本质上传指针进去就OK了。没有啥意想不到的情况。除非跨平台对齐和端序不一样
xwkm
2楼-- · 2020-02-07 16:40
xiaobendan 发表于 2015-11-9 18:56
我觉得7楼的方法也可以啊

顺便问一下,前几天在论坛看到的那个文章,对于SIZEOF关键字的理解,好像里面的 ...

sizeof(int)在8位/16位机上是2
在32位机上是4。sizeof(char[10])真不一定是10。这个涉及到平台相关的问题,比如对齐。
xiaobendan
3楼-- · 2020-02-07 18:03
 精彩回答 2  元偷偷看……
wazhiyi
4楼-- · 2020-02-07 18:49
古二真。
acmilannast
5楼-- · 2020-02-07 20:33
唯一需要注意的是  字节对齐问题
LCRPN
6楼-- · 2020-02-07 22:02
banye2010 发表于 2015-11-9 12:57
struct sensor_rom_t
{
    unsigned int addr;   

你怎么处理字节对其问题?你看我刚发的一个有关的帖子。

一周热门 更多>