F4的IIC协议

2019-07-20 23:00发布

                          
void IIC_Send_Byte(u8 txd)
{                        
    u8 t;   
        SDA_OUT();             
    IIC_SCL=0;
    for(t=0;t<8;t++)
    {              
        IIC_SDA=(txd&0x80)>>7;
        txd<<=1;           
                delay_us(2);   //根据TEA57676,三个延时必须
                IIC_SCL=1;
                delay_us(2);
                IIC_SCL=0;       
                delay_us(2);
    }         
}
TEA5767是什么,为什么要加这几个延时

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
XHZSCONGE817
2019-07-21 11:58
来俩不甜的 发表于 2016-4-8 17:13
看tlow 和 thigh

T low=1.2us,T high=0.6us根据数据有效性时序图是不是原子个的这段程序
void IIC_Send_Byte(u8 txd){                        
    u8 t;   
        SDA_OUT();             
    IIC_SCL=0;
    for(t=0;t<8;t++)
    {              
        IIC_SDA=(txd&0x80)>>7;
        txd<<=1;           
                delay_us(2);   
                IIC_SCL=1;
                delay_us(2);
                IIC_SCL=0;       
                delay_us(2);
    }         
}



改为如下更合适
void IIC_Send_Byte(u8 txd){                        
    u8 t;   
        SDA_OUT();             
    IIC_SCL=0;
    for(t=0;t<8;t++)
    {              
        IIC_SDA=(txd&0x80)>>7;
        txd<<=1;           
                delay_us(1.2);   
                IIC_SCL=1;
                delay_us(0.6);
                IIC_SCL=0;       
                delay_us(1.2);
    }         
}

菜鸟入手跪求各位大神详解

一周热门 更多>