stm32-关于AT24C02这个芯片的坑点

如标题所述,这个鬼芯片有一个很大的坑点在里面,请看下图。
AT24C系列手册
手册上写的是1k 和 2k 是8byte,之后的是16byte,这一点一定要看清楚,一定要看清楚,一定要看清楚。

我之前看手册的时候,看成了16byte,导致写入数据8字节之后的部分完全崩溃了,

具体的分析拆包代码如下:

ErrorStatus writeAt24C02(uint16_t address,void *writeBuff,uint16_t writeLen)
{
 int len = 0;
 for(int i = 0 ; i < writeLen ; i += 0x08)
 {
  if(writeLen - i >= 0x08)
  {
   len = 0x08;
  }
  else
  {
   len = writeLen - i;
  }
  if(HAL_I2C_Mem_Write(&hi2c2, ADDR_24LCxx_Write,address + i, I2C_MEMADD_SIZE_8BIT,((u8 *)writeBuff + i),len, 0xFFFF) != HAL_OK)
  {   
   return ERROR;
  }
  osDelay(30);   
 }
 return SUCCESS;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值