怎样用一个公共的名称作为SDA和SCL、调用时,只要分别用...

2019-12-23 18:35发布

请教众多高手,现有3组模拟IIC接口,分别占用不同的IO口。为了不至于分别写3套模拟IIC驱动程序,有什么办法用一个公共的名称作为SDA和SCL、调用时,只要分别用三组实际IO名称代替那个公共名称就可以使用共同的子函数呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
lianglee
1楼-- · 2019-12-23 18:38
本帖最后由 lianglee 于 2017-9-14 16:38 编辑

函数指针。

或者,最直接的,

void Scl_Out(uchar I2C uchar out)
{
        switch(I2C)
case 0:通道0
{
        if(out==1)
{
        通道0的SCL设为高,或其它
}
else
{
...
}
break;       
}
case 2:通道2
...
}

void I2C_Start(void I2C)
{
        Scl_Out(0,0);
...
}
chess01
2楼-- · 2019-12-23 20:13
swich(ptr)
{
case 1:SDA1=0;break;
case 2:SDA2=0;break;
case 3:SDA3=0;break;
}
sgnohyang
3楼-- · 2019-12-23 22:06
 精彩回答 2  元偷偷看……
liufabing
4楼-- · 2019-12-24 03:48
器件地址不一样啊.为什么要分开
sgnohyang
5楼-- · 2019-12-24 04:59
器件地址不一样啊.为什么要分开

三个完全相同的芯片
wye11083
6楼-- · 2019-12-24 06:08
向来是打个负放struct里面。。用哪个调哪个,几乎没有性能损失。

一周热门 更多>