打印
[应用相关]

将一个整型变量写读eeprom操作

[复制链接]
494|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2020-9-29 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将一个整型变量写读eeprom操作

使用特权

评论回复
沙发
gongche| | 2020-9-29 22:59 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
chuxh|  楼主 | 2020-9-29 23:00 | 只看该作者
就是我有一个整形的变量,要怎么写在eeprom中,用的时候怎么读出来?我用的库函数写的。

使用特权

评论回复
地板
huanghuac| | 2020-9-29 23:00 | 只看该作者

主要分成以下2个步骤:
             第一步:  用库函数把它写进去。
             第二部:  用库函数把它读出来。

使用特权

评论回复
5
happy_10| | 2020-9-29 23:02 | 只看该作者
楼主网上去找找 操作EEPROM的例程啦,很多很多的。

使用特权

评论回复
6
chuxh|  楼主 | 2020-9-29 23:02 | 只看该作者
写的时候可以写32个字,也就是4个字节,但是读的时候只能读一个字节,我想知道在读的时候怎么让它产生移位,怎么知道他已经读完了

使用特权

评论回复
7
bqyj| | 2020-9-29 23:03 | 只看该作者
那也就是你是用的EEPROM支持连续写得操作,也就是说你只需要发一次地址后,就立马可以连续写了。

使用特权

评论回复
8
zhuhuis| | 2020-9-29 23:04 | 只看该作者
既然这个EEPROM支持连续写,它必然是支持连续读操作的,你在读取完一个字节的时候在继续读取数据就行了,EEPROM这颗芯片硬件会自动给地址加1,然后返回这个地址的值

使用特权

评论回复
9
tian111| | 2020-9-29 23:05 | 只看该作者

取决于你的整形有几个字节

使用特权

评论回复
10
songqian17| | 2020-9-29 23:06 | 只看该作者
最笨的办法就是用union
union {
  int data;
  char byte[4];// 假设你的整形为4bytes
} mydata;
使用时
...
mydata.data = 0x12345678;
eeprom_wr_byte(mydata.byte[0],addr); //写第一个字节 ,剩下的你该明白的

使用特权

评论回复
11
chenho| | 2020-9-29 23:07 | 只看该作者
你读四个不就行了。放到一个地址里,然后再读一个int。

使用特权

评论回复
12
chuxh|  楼主 | 2020-9-29 23:10 | 只看该作者
怎么读一个整型?

使用特权

评论回复
13
chuxh|  楼主 | 2020-9-29 23:11 | 只看该作者
我这边的库都是一次只读一个字节的

使用特权

评论回复
14
juventus9554| | 2020-9-29 23:12 | 只看该作者
一次一个字节,读4次不就可以了,每读一个就存到数组里,读完再组合起来

使用特权

评论回复
15
wangzsa| | 2020-9-29 23:13 | 只看该作者
写:
int a = 0;
eeprom_write((uint8_t*)&a,4);
读:
int a = 0;
eeprom_read((uint8_t*)&a,4);

使用特权

评论回复
16
zhuww| | 2020-9-29 23:14 | 只看该作者
没明白楼主想要问啥

使用特权

评论回复
17
gongche| | 2020-9-29 23:14 | 只看该作者
能一个字节一个字节的写?

使用特权

评论回复
18
yinxiangh| | 2020-9-29 23:15 | 只看该作者
可以单个字节操作?

使用特权

评论回复
19
chuxh|  楼主 | 2020-9-29 23:16 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
20
sonicll| | 2020-9-30 09:11 | 只看该作者
楼主你需要搞清楚32位整形数在内存里是怎么存储的,大端法小端法的概念,怎么用4个8位数拼接成一个32位数

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝