打印

读写多字节EEPROM

[复制链接]
2427|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
h185540860|  楼主 | 2013-4-25 08:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位单片机大侠:
     请问如何读写长整型多字节的数据到EEPROM,尤其是读的时候怎么还原啊,好像EEProm只能读写CHAR单字节数据,请大家帮帮忙啊,可以提供C参考下就更好了!
                                                                谢谢

相关帖子

沙发
ningling_21| | 2013-4-25 08:53 | 只看该作者
读CHAR型数据,多读几次就可以了。
读到的数据先放到数组里面,再还原。
long l_var;
l_var=I2C_buf[0];
l_val<<=8;
l_val|=I2C_buf[1];
l_val<<=8;
....
依次类推

使用特权

评论回复
板凳
airwill| | 2013-4-25 09:09 | 只看该作者
都没有说明 EEPROM 的类型.
如果是 iic的 eeprom(at24c256c)
读: 可以连续任意长度读
写: 可以按页写 (一次不超过1页, 即 64 Bytes)

使用特权

评论回复
地板
h185540860|  楼主 | 2013-4-25 11:44 | 只看该作者
就是合泰自带内置的EEPROM

使用特权

评论回复
5
zd420325| | 2013-4-25 17:45 | 只看该作者
位操作啊,大哥。

使用特权

评论回复
6
ayb_ice| | 2013-4-25 19:15 | 只看该作者
typedef unsigned char U8;
typedef unsigned int  U16;
typedef unsigned long U32;


typedef union{
        U8 u8[4];
        U16 u16[2];
        U32 u32;
        ...

}t_U32;

t_U32 eeprom;

        eeprom.u8[0] = 0x12;
        eeprom.u8[1] = 0x34;
        eeprom.u8[2] = 0x56;
        eeprom.u8[3] = 0x78;

        if(eeprom.u32 == 0x12345678){
                // 大端模式
        }else
        if(eeprom.u32 == 0x78563412){
                // 小端模式
        }else
        {
                // 错误
        }

使用特权

评论回复
7
kaly_liu| | 2013-5-14 15:11 | 只看该作者
本帖最后由 kaly_liu 于 2013-5-14 16:40 编辑

路过,打酱油~~~:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://www.hq173.com/index.html

9

主题

110

帖子

1

粉丝