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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章