当前位置: 代码迷 >> 驱动开发 >> STM32F100片外FM24CL04,换成FM24CL64或AT24C02,读写数据不成功,求解…该怎么处理
  详细解决方案

STM32F100片外FM24CL04,换成FM24CL64或AT24C02,读写数据不成功,求解…该怎么处理

热度:43   发布时间:2016-04-28 10:28:00.0
STM32F100片外FM24CL04,换成FM24CL64或AT24C02,读写数据不成功,求解…

bool I2C_Start(void)
{
SDA_H;
SCL_H;
I2C_delay();
if(!SDA_read)return FALSE;
SDA_L;
I2C_delay();
if(SDA_read) return FALSE;
SDA_L;
I2C_delay();
return TRUE;
}

void I2C_Stop(void)
{
SCL_L;
I2C_delay();
SDA_L;
I2C_delay();
SCL_H;
I2C_delay();
SDA_H;
I2C_delay();
}

void I2C_Ack(void)
{
SCL_L;
I2C_delay();
SDA_L;
I2C_delay();
SCL_H;
I2C_delay();
SCL_L;
I2C_delay();
}

void I2C_NoAck(void)
{
SCL_L;
I2C_delay();
SDA_H;
I2C_delay();
SCL_H;
I2C_delay();
SCL_L;
I2C_delay();
}

bool I2C_WaitAck(void)
{
SCL_L;
I2C_delay();
SDA_H;
I2C_delay();
SCL_H;
I2C_delay();
if(SDA_read) {
SCL_L;
return FALSE;
}
SCL_L;
return TRUE;
}


读写部分就不丢出来了,都一个样,同系列的芯片,手册时序完全一样,肿么回事儿!
FM24CL04 FM24CL64 AT24C02

------解决方案--------------------
如果用示波器看,时序真的一样的话,基本应该没啥问题了


------解决方案--------------------
不用自带的I2C ,,用IO 模拟 试试呢

------解决方案--------------------
问题完美解决:
 按照FM24CL04、FM24CL64、AT24C02手册,读写时序一致,但地址命令格式,这三类芯片地址发送不一样,一定要注意命令格式!
 还有啥问题Q群:77203167