24C02无法写入问题,原子哥程序存在一个小BUG

2019-07-21 01:28发布

型号:M24C02-FMN6TP

使用逻辑分析仪看时序,整体看不出问题,但是就是无法写入,后来发现是IIC的STOP时序有问题。

手册时序要求
QQ截图20180508142254.png


原程序
void IIC_Stop(void)
{
        SDA_OUT();//sda线输出
        IIC_SCL=0;
        IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
        delay_us(4);
        IIC_SCL=1;
        IIC_SDA=1;//发送I2C总线结束信号
        delay_us(4);                                                                  
}


改为
void IIC_Stop(void)
{
        SDA_OUT();//sda线输出
        IIC_SCL=0;
        IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
        delay_us(4);
        IIC_SCL=1;
        delay_us(4);
        IIC_SDA=1;//发送I2C总线结束信号                                                                  
}


就没问题了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。