标题:
想讨论一下如何把C语言结构体的数据高效的写入到24C02存储芯片
[打印本页]
作者:
robinsonlin
时间:
2019-4-15 14:00
标题:
想讨论一下如何把C语言结构体的数据高效的写入到24C02存储芯片
c语言是弱项,对于结构体和指针也一直很头疼。
typedef struct
{
unsigned int Tep; //
unsigned char Sec;
unsigned int Hol;
}PPP;
extern PPP P11,P12,P13,P14,P21,P22,P23,P24;
void EEPROM_WriteBuf(unsigned char *buf, int count, unsigned int addr)
{
while(count--)
{
EEPROM_ByteWrite(addr++,*buf++);
}
}
想把如上结构体的内容写入到24C02,请不吝赐教。
作者:
robinsonlin
时间:
2019-4-15 14:02
本帖最后由 robinsonlin 于 2019-4-15 17:40 编辑
24c02的接口已做好。尴尬了。这么久没有人能回帖。 找了半天资料, 勉强用空间换时间的方式解决了问题,但是总觉得不理想。把结构体先写入数组,然后再把数组写入24c02。如果哪位有更好的办法。 请不吝赐教。
void Put_PPP(PPP pp,unsigned int addr)
{
Set_PPP(1);
Ptemp=pp;
unsigned char buf[4];
buf[0]=Ptemp.Tep;
buf[1]=Ptemp.Tep>>8;
buf[2]=Ptemp.Sec;
buf[3]=Ptemp.Hol;
EEPROM_WriteBuf(buf,4,addr);
}
作者:
yzwzfyz
时间:
2019-4-15 15:41
高效:是指哪些方面?
作者:
Ahchi
时间:
2019-4-16 01:10
直接将结构体地址传入EEPROM_WriteBuf函数啊。你转buf的行为叫做序列化。注意字节序和对齐问题就行了。本机自己读自己写就不用考虑字节序,大小最好用sizeof
作者:
robinsonlin
时间:
2019-4-16 13:50
如你所言, 代码该如何写。 本人指针这款有点蒙, 可否留下源码给我。谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1