zoukankan      html  css  js  c++  java
  • 【协议】IIC通信

    1、传输时,SCL为高电平时SDA须保持稳定,SCL为低电平是SDA才能变化

    2、SCL为高时SDA由高变低为起始dive in

          SCL为高时SDA由低变高为终止pull out

    3、应答与非应答

    应答:从机应答位一帧数据的第九位为0;

    非应答:从机应答位一帧数据的第九位为1;

    主机在发送数据时,每发送一字节数据后都会向从机读取应答位

                  当从机为应答时,表示从机空闲

                  当从机为非应答时,表示从机繁忙,主机读到非应答时应发出终止信号

              因此主机可以通过应答位来判断从机是否成功接收数据;

              主机在接收数据时,当收到最后一个数据后,对从机发送非应答,从机释放SDA,允许主机终止。

    4、数据帧

    起始信号后跟一帧地址,其中七位为ADDR,位为方向

     

     

    如:

        发送:主机发送起始信号 >> 主机发送七位地址及一位方向0  >>

        主机读取从机应答信号 >> 主机发送首地址 >> 主机读取从机应答信号  >> 

        主机发送数据 >> 。。。>> 读到非应答 >> 从机繁忙 >> 主机发送终止信号;

         

    void Send_EPR_Byte(uchar ADDR, uchar dat)
    {
        IIC_Start();
        IIC_SendByte(0xa0);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        IIC_SendByte(ADDR);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        IIC_SendByte(dat);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        IIC_Stop();
    }

        读取:主机发送起始信号 >> 主机发送地址及方向0>>

        主机读取从机应答信号 >> 主机发送首地址 >> 主机读取从机应答信号 >> 换向 >>

        主机发送起始信号 >> 主机发送从机地址及方向1 >> 主机读取从机应答信号 >>

        主机读取数据 >> 主机发出非应答 >> 从机释放SDA >> 主机发送终止信号

        

    uchar Read_EPR_Byte(uchar ADDR)
    {
        uchar dat;
        IIC_Start();
        IIC_SendByte(0xa0);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        IIC_SendByte(ADDR);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        IIC_Start();
        IIC_SendByte(0xa1);
        if(IIC_WaitAck())
            ackflag = 1;
        else
            ackflag = 0;
        dat = IIC_RecByte();
        IIC_WaitAck();
        IIC_Stop();
        return dat; 
    }

    个人对IIC的概念还存在模糊,如上定义不时修改,欢迎指正

  • 相关阅读:
    第二阶段Sprint冲刺会议8
    第二阶段Sprint冲刺会议7
    第二阶段Sprint冲刺会议6
    问题账户需求分析
    2016年秋季个人阅读计划
    应该怎么做需求分析--读后感
    个人总结
    人月神话第三篇阅读笔记
    第十六周学习进度
    人月神话第二篇阅读笔记
  • 原文地址:https://www.cnblogs.com/ZYQS/p/14235449.html
Copyright © 2011-2022 走看看