一、I2C的时序流程图
二、代码分析
*以下延时,需要头文件 “ #include<intrins.h> ”
#define I2CDelay() {_nop_();_nop_();_nop_();_nop_();}
1、I2C总线_起始信号[ void I2CStart() ]
*起始条件:在SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件。
第一步,确保SDA总线与SCL总线为高电平。
I2C_SDA = 1; //确保SDA总线与SCL总线为高电平
I2C_SCl = 1;
第二步,延时,确保总线稳定后,将SDA线从高电平向低电平切换。
I2CDelay(); //延时
I2C_SDA = 0; //先拉低SDA
第三步,延时,确保总线稳定后,将SCL线从高电平向低电平切换(SCL拉低,准备接收信号)。
I2CDelay(); //延时
I2C_SCL = 0; //拉低SCL

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



