打印

关于IIC-EEPROM代码问题

[复制链接]
320|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电员师|  楼主 | 2018-7-4 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在IIC-EEPROM的代码发现
void I2C_EE_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite)
各种判断太多了,我就重新自己写了实现方式。代码如下

u8 CanWriteDataNum = 0;  
u8 RealNum = 0;   

while( NumByteToWrite > 0 )  //还有数据要写入
{
  CanWriteDataNum = I2C_PageSize - WriteAddr%I2C_PageSize;; //计算待写入可写入数据量
  RealNum = (NumByteToWrite <= CanWriteDataNum) ? NumByteToWrite : CanWriteDataNum; //获取实际可写入数据量
  
  I2C_EE_PageWrite(pBuffer, WriteAddr, RealNum);  //调用写入函数
  I2C_EE_WaitEepromStandbyState();    //等待写入完成
  NumByteToWrite -= RealNum;      //减去已写入数据数量
  WriteAddr += RealNum;       //计算新的地址
  pBuffer += RealNum;
}

已经测试通过。 代码的思路是以当前页可写入数据的数量为基准。
有什么问题还请各位大侠指正!

使用特权

评论回复

相关帖子

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

本版积分规则

471

主题

480

帖子

0

粉丝