两个单片机之间进行模拟I2C通讯

2020-01-23 14:40发布

有大侠做过两个单片机之间进行I2C通信的吗?一般单片机端当主机用两条数据线去模拟i2c当主机读取外围的从设备比较简单,但单片机端模拟从机与另外一个单片机模拟I2C当主机进行通信就没搞过了,有人这么做过吗,能否贴出单片机端模拟从机的I2C协议代码,研究一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
huhang
2020-01-24 22:23
void I2C_txbyte(u8 dat_byte)  
{  
        u8 i,temp;
        temp = dat_byte;                                                                                                                                               
        //while(scl == 1);  //SCLϽµÑØ¿ªÊ¼¶Á
        //while(sda == 0);                                                                        //µÈ´ýÖ÷»úÊÍ·ÅÊý¾Ý×ÜÏß        
       
       
        SDA_OUT();                                               
    for (i = 0 ;i < 8 ;i++)                                                                //´Ó×î¸ßλ¿ªÊ¼£¬ÒÀ´Î·¢ËÍ8λ  
    {
              while(scl == 0);  //µÈ´ýÖÃ1ºó¸øÖ÷»ú·¢ËÍÊý¾Ý
               
                if(temp&0x80)
                {
                        SDA_Set;
                }
                else
                {
                        SDA_Reset;
                }
                temp = temp << 1;
                //temp = temp << 1;                                                                 //½«Òª·¢Ë͵ÄÊý×î¸ßλÒƵ½CYÖÐ
                //sda = CY;                                                                                //Êý¾ÝÏß·¢ËÍCYÖдæµÄλÊý¾Ý  
                //while(scl == 0);
                //while(scl == 1);
                while(scl == 1);//Ϊ1ʱµÈ´ýÖ÷»ú¶ÁÈ¡Êý¾Ý£¬Îª0ʱÖ÷»ú¶ÁÈ¡Íê³É¡£
                //while(scl == 0); //
        }
        //sda = 1;                                                                                         //·¢ÍêÊÍ·ÅÊý¾Ý×ÜÏß
        //SDA_Set;
        SDA_IN();
}

一周热门 更多>