话不多说 直接上资料
这是ZD24C64 数据手册里面的读写操作时序。
数据手册网上有很多相信大家也能随便就找到。
如下图所示:
这是使用iic按字节写操作
器件地址:我的是0xA0
来不及解释了赶快上车:
在下使用的是STM32_CubeIDE,个人觉得还是挺好用。
本人使用的版本为 Version: 1.8.0
使用stm32CubeIDE生成 硬件IIC 代码…(此处省略相关操作)直接上菜…
#define E2PROM_ADDRESS 0X00A0
void E2PROM_Write(uint16_t WtireAddress,uint8_t *pData,uint16_t DatSize)
{
HAL_I2C_Mem_Write(&hi2c2, E2PROM_ADDRESS, WtireAddress, 2, pData, DatSize, 1000);
}
void E2PROM_Read(uint16_t ReadAddress,uint8_t *pData,uint16_t DatSize)
{
HAL_I2C_Mem_Read(&hi2c2, E2PROM_ADDRESS, ReadAddress, 2, pData, DatSize, 1000);
}
void E2PROM_DATA_Write(uint16_t WtireAddress,uint8_t *pData,uint16_t DatSize)
{
uint16_t dataLength;//数据长度
uint16_t i,j,AddressTemp;
uint8_t *pDataTemp;
pDataTemp = pData;
dataLength = DatSize;
AddressTemp = WtireAddress;
for(i = 0; i < ((DatSize/32) + 1); i++)
{
if(dataLength > 32)
{
j = 32;
E2PROM_Write(AddressTemp,pDataTemp,j);
dataLength -= 32;
AddressTemp += 32;
pDataTemp += 32;
HAL_Delay(1);
}
else
{
E2PROM_Write(AddressTemp,pDataTemp,dataLength);
}
}
}