zoukankan      html  css  js  c++  java
  • STM32 IIC 时序

    起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
    停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

    //产生IIC起始信号
    void IIC_Start(void)
    {
        SDA_OUT();  //sda线输出
        IIC_SDA=1;   // 拉高数据线        
        IIC_SCL=1;   // 拉高时钟线
        delay_us(4); //延迟 ,延迟是有必要的,参照I2C协议写的
         IIC_SDA=0; //START:when CLK is high,DATA change form high to low ,触发通讯
        delay_us(4);
        IIC_SCL=0; / / ?钳住I2C总线,准备发送或接收数据,方便数据线上的数据变化
    }     

    //产生IIC停止信号
    void IIC_Stop(void)
    {
        SDA_OUT();//sda线输出
        IIC_SCL=0; // ?
        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);                                   
    }

    REF

    https://zhuanlan.zhihu.com/p/338377414

  • 相关阅读:
    SQL SERVER或oracl如何判断删除列
    shell date获取时间值
    Zabbix 企业Nginx监控
    Nginx 初探
    Css 基础学习
    jQuery 基础学习
    私有云Mariadb集群搭建
    私有云Rabbitmq 集群部署
    SaltStack Job管理
    Zabbix 监控rabbitmq
  • 原文地址:https://www.cnblogs.com/emanlee/p/14265008.html
Copyright © 2011-2022 走看看