STC8A8K64D4, EEPROM, unsigned long长度问题
hi, 各位老师, 看了例程,EEPROM多为u16, u8,
我这需要一个 unsigned long长度的数据读和存,实验下来,似乎不行?
怎么处理?
一个unsignedlong数据拆成4个u8就好了呀;
假设这个unsignedlong 变量是x,那么可以定义个dat【4】数组,然后:
dat = (u8)(x>>24);
dat = (u8)(x>>16);
dat =(u8)(x>>8);
dat = (u8)(x>>0);
再把这个数组调用个写入函数写入进去就好了
取回组合?
dat = (u8)(x<<0);
dat =(u8)(x<<8);
dat = (u8)(x<<16);
dat = (u8)(x<<24);
eeprom只能存u8数据吧 soma 发表于 2024-3-18 10:10
eeprom只能存u8数据吧
这看你怎么理解了,,写入的时候只能按字节写入,
但是这个数据嘛,,16位的32位的就分开存储呗 _奶咖君_ 发表于 2024-3-18 10:51
这看你怎么理解了,,写入的时候只能按字节写入,
但是这个数据嘛,,16位的32位的就分开存储呗 ...
新人,正有这个困惑,U16拆分写入读回拼合成功,long有正负的拆成四个U8存储读回拼合结果不对,请大佬指教{:4_196:} cadplus 发表于 2024-3-19 08:04
新人,正有这个困惑,U16拆分写入读回拼合成功,long有正负的拆成四个U8存储读回拼合结果不对,请大佬指 ...
用左移加或运算 应该是不需要关注原数据的正负来着 使用指针强制类型转换。 _奶咖君_ 发表于 2024-3-19 08:36
用左移加或运算 应该是不需要关注原数据的正负来着
谢谢大佬{:4_196:}
我再去上机试试,在网上找遍了也没的这方面的例子,有一个C的例子可能是PC版的,U32拼成long是不对的,说要用指针,这个还没弄明白 我也是没有成功,中间也,EA=0, 存之后,也再EA=1,所以中断干扰应该不是,关键是有时对,有时不对,头晕。
看看有没有大佬来个举个栗子。
页:
[1]