中级会员
 
- 积分
- 446
- 金钱
- 446
- 注册时间
- 2013-8-1
- 在线时间
- 57 小时
|
1金钱
用硬件I2C读取E2PROOM
如下示例:
HAL_StatusTypeDef AT24CXX_WriteLenByte(uint16_t MemAddr,uint8_t* DataToWrite,uint16_t Len)
{
uint16_t i;
HAL_StatusTypeDef sta;
for(i=0;i<Len;i++)
{
sta=HAL_I2C_Mem_Write(&hi2c2,0xA0,MemAddr,I2C_MEMADD_SIZE_8BIT,&DataToWrite,1,500);
MemAddr++;
if(sta!=HAL_OK)
{
return sta;
}
HAL_Delay(3);
}
return sta;
}
HAL_StatusTypeDef AT24CXX_ReadLenByte(uint16_t MemAddr,uint8_t* DataToWrite,uint16_t Len)
{
uint16_t i;
HAL_StatusTypeDef sta;
for(i=0;i<Len;i++)
{
sta=HAL_I2C_Mem_Read(&hi2c2,0xA1,MemAddr,I2C_MEMADD_SIZE_8BIT,&DataToWrite,1,500);
MemAddr++;
if(sta!=HAL_OK)
{
return sta;
}
HAL_Delay(3);
}
return sta;
}
当此项参数为:I2C_MEMADD_SIZE_8BIT 读写正常,当将此参数换成 I2C_MEMADD_SIZE_16BIT 就不能读写正常了,有人遇到过这种问题吗?不明白为什么,希望有人遇到过帮忙解答一下。。。
主要是这个参数是读取地址的区别,我认为应该不会影响到读较小地址的数据
|
|