阿波罗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了。。。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
宅宅宅
1楼-- · 2019-07-20 17:49
 精彩回答 2  元偷偷看……
宅宅宅
2楼-- · 2019-07-20 22:12
原子哥,我自己画的F407vgt6核心板也用这个方法解决了IIC的问题
正点原子
3楼-- · 2019-07-21 00:11
 精彩回答 2  元偷偷看……
rent8158669
4楼-- · 2019-07-21 00:16
帮顶,谢谢原子哥!

一周热门 更多>