野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19943|回复: 6

IIC读取AT24C02

[复制链接]
发表于 2014-3-8 15:10:30 | 显示全部楼层 |阅读模式

  Addr = WriteAddr % I2C_PageSize;//                  
  count = I2C_PageSize - Addr;
  NumOfPage =  NumByteToWrite / I2C_PageSize;//                    
  NumOfSingle = NumByteToWrite % I2C_PageSize;//  
这几句没有搞懂,求解释,
回复

使用道具 举报

发表于 2014-3-8 15:17:26 | 显示全部楼层
NumOfPage  是求出要写入的数据一共几页
NumOfSingle 是求出不满一页的数据有多少

楼主尝试模拟把数字代入去就知道了
假设
要写入的数据 NumByteToWrite =1024
eeprom每页的大小I2C_PageSize =50
然后就可以算出要写入多少页NumOfPage ,不满一页的剩余数据又有多少了NumOfSingle
NumOfPage =  NumByteToWrite / I2C_PageSize;//                    
NumOfSingle = NumByteToWrite % I2C_PageSize;//
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-8 15:22:17 | 显示全部楼层
WriteAddr这个值一开始不就已经设置为零了吗。这个I2C_PageSize是8,那么 Addr = WriteAddr % I2C_PageSize中。这个Addr不就永远是零了吗?
回复 支持 反对

使用道具 举报

发表于 2014-3-8 15:26:53 | 显示全部楼层
寒灯 发表于 2014-3-8 15:22
WriteAddr这个值一开始不就已经设置为零了吗。这个I2C_PageSize是8,那么 Addr = WriteAddr % I2C_PageSize ...

没关系啊!Addr=0就是按页写.,Addr!=0就按字节写
回复 支持 反对

使用道具 举报

发表于 2014-3-8 15:29:14 | 显示全部楼层
WriteAddr是形参,是外部传进来的,是多少没有关系,如果外部传进来为0,那么就在0这个地址偏移写入数据,如果传进来是50就在50这个地址偏移写入数据
回复 支持 反对

使用道具 举报

发表于 2014-3-8 15:30:56 | 显示全部楼层
你没看到函数的后面还有WriteAddr + = I2C_PageSize ;嘛,地址就在这里变了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-8 15:33:58 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 13:22 , Processed in 0.042982 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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