要实现的基本函数有如下这些;
1、I2C_Start:向从机发送起始信号。
2、I2C_Stop:向从机发送停止信号。
3、I2C_WriteByte:向从机写一个字节数据。
4、I2C_WaitAck:主机等待从机应答
5、I2C_ReadByte:向从机读一个字节的数据
6、I2C_Ack:主机向从机Ack
7、I2C_NAck:主机向从机NACK
(1) I2C_Start:向从机发送起始信号
时序图:
起始条件为:当 SCL 为高电平时,SDA 由高到低(下降沿)
void I2C_Start(void) //伪代码
{
SDA输出1;
SCL输出1;
延时; //延时的目的,让SCL时钟脉冲的高电平持续一段时间,至少0.6us以上
SDA输出0;
延时; //延时的目的,让SDA的低电平持续稳定一段时间,这个时间不能少
SCL输出0;
延时://延时的目的,让SCL时钟脉冲的低电平持续一段时间,至少1.2us以上
}
通过以上代码就产生了起始信号了。
(2)、I2C_Stop&