野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16680|回复: 4

关于I2C接口bufferwrite函数的一点疑问

[复制链接]
发表于 2014-11-23 09:07:11 | 显示全部楼层 |阅读模式
用的是野火ISO-MINI的板子和程序,程序没有问题,就是看的时候觉得有点不懂,就会图片上黄色画出的地方。。。这个黄色圈出的地方代码是什么啊。。。。还有就是为什么输入是地址首页和不是首页的代码有差别,不是都是这样一页一页写进去,只是首地址不一样么??小白求大神解答
捕获.PNG
回复

使用道具 举报

发表于 2014-11-23 12:57:01 | 显示全部楼层
eeprom只能按页写入,要进行地址处理
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-23 15:45:07 | 显示全部楼层
根据大神的提示,查资料后恍然大悟:页操作是只会对当前的页操作的,不会自动跳转到下一页的。所以我们操作时要注意,刚开始应该先填满页,然后在整页整页的写。这样理解对的吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-23 15:46:53 | 显示全部楼层
转发在网上看到的一些东西:http://blog.sina.com.cn/s/blog_7aa901bc0101hkxj.html
嘻嘻,分享和大家一起学习:

eepom一般的写操作我就不说,我要分析的它的页操作(其实也算不上是分析,都是百度谷歌的只是记录).
当对eeprom写比较大的数据时,一个一个写就比较繁琐了,此时提供一种页操作即连续对eeprom进行写操作。但是页操作也并不是万能,它有限制:
24C01 24C02是8字节
24C04 24C08 24C16是16字节  
其实24系列的eeprom提供缓存的技术,你写入一页的数据,它先保存起来,当你停止对它操作时(stop信号后),eeprom再把缓存的数据写好。所以页操作的最大值时受限于IC的缓存区大小的。

当你进行页操作时也分两种情况:起始地址与页对齐或不对齐。什么意思呢,就是你的起始地址模8是否为0.我们要分析的是不对齐的情况(对齐的情况一般总不会出错吧)。当你在起始地址为3的地址写入0--7 8个数据时 ,你以为是这样的:
地址:3 4 5 6 7 8 9 10
数据:0 1 2 3 4 5 6 7
但是现实是这样的:
地址:0 1 2 3 4 5 6 7 8 9 10
数据:5 6 7 0 1 2 3 4   8以后的地址保持原先的数据不变

通过上面的例子我们可以看出来,页操作是只会对当前的页操作的,不会自动跳转到下一页的。所以我们操作时要注意,刚开始应该先填满页,然后在整页整页的写。(上面的例子就是:先写5个数据进去,然后再写3个数据)。
回复 支持 反对

使用道具 举报

发表于 2015-11-23 20:53:24 | 显示全部楼层
能否提供 void I2C_EE_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite) 參數的解釋?

剛入門的新手,這部分看不太懂阿...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:11 , Processed in 0.042350 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表