打印

STMF4的I2C程序和C51I2C程序的区别

[复制链接]
293|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
博斯|  楼主 | 2018-7-27 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
举个例子:结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 这是库函数指南上写的 ,正确I2C协议
void IIC_Stop(void)
{
SDA_OUT();//sda线输出
IIC_SCL=0;                                                                                                     一开始SCL,SDA是低电平,延时4US  SCL变高电平,然后SDA变高电平,延时。这能识别出来结束信号吗?
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);
这是我以前看到用C51写的
void ADXL345_Stop()
{
    SDA = 0;                    //拉低数据线                     先让SCL变高,然后延时,SDA再拉高。 同样是SCL先高SDA再高,但我总觉得这个更符合,或是更安全。。。
    SCL = 1;                    //拉高时钟线
    Delay5us();                 //延时
    SDA = 1;                    //产生上升沿
    Delay5us();                 //延时
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

412

主题

412

帖子

0

粉丝