阿波罗F4/F7开发板例程不支持24C512的解决办法

2019-07-20 16:38发布

这两天有客户反映阿波罗STM32F429开发板的代码不支持24C512。
特意买了一批芯片回来测试,发现确实不能支持,最终发现IIC_Stop函数有一处bug,修改后问题得到解决。
问题代码:
[mw_shl_code=c,true]//产生IIC停止信号
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);
}[/mw_shl_code]

修正后代码:
[mw_shl_code=c,true]//产生IIC停止信号
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总线结束信号
}[/mw_shl_code]

就是这个delay_us的位置出现了问题,导致的bug.
修改后,就可以支持24C512了。。。。

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