void i2c_Start(void)
{
/*当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信号*/
macI2C_SDA_1();
macI2C_SCL_1();
i2c_Delay();
macI2C_SDA_0();
i2c_Delay();
macI2C_SCL_0();
i2c_Delay();
}
这是模拟I2C起始信号的源码, /*当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信号*/这段话是我手动打上去的
,复制过来会乱码,我就想问问,SDA线拉低后不是已经启动了总线吗,为何SCL线紧接着也要拉低,我看到一个说法
就是把SCL拉低就是为了钳住I2C总线,说白了就是为了占用I2C,是这个道理吗,那为何SCL拉低就是占用呢 |