標(biāo)題: IIC如何寫入一個字節(jié) [打印本頁]

作者: INSIST    時間: 2018-3-16 21:49
標(biāo)題: IIC如何寫入一個字節(jié)
/*發(fā)送一個字節(jié)*/
void I2C_send_byte(uchar byte)
{
        uchar i;
        for(i = 0 ; i < 8 ; i++)//特別是這里看不懂
        {
                SCL = 0;
                _nop_();
                if (byte & 0x80)
                {                               
                        SDA = 1;       
                        _nop_();                                  
                }                               
                else
                {
                        SDA = 0;
                        _nop_();
                }
                SCL = 1;
                _nop_();
                byte <<= 1;        // 0101 0100B
        }
        SCL = 0;
        _nop_();
        SDA = 1;
        _nop_();
}


/*I2C 讀一字節(jié)*/
uchar I2C_read_byte()
{
        uchar dat,i;
        SCL = 0;
        _nop_();
        SDA = 1;
        _nop_();
        for(i = 0 ; i < 8 ; i++)//特別是這里看不懂
        {
                SCL = 1;
                _nop_();
                if (SDA)                            
                {
                         dat |= 0x01; //
                }
                else
                {
                        dat &=  0xfe;        //1111 1110
                }
                _nop_();
                SCL = 0 ;
                _nop_();
                if(i < 7)
                {
                        dat = dat << 1;       
                }
        }
        return(dat);
}



作者: yzwzfyz    時間: 2018-3-17 02:11
你需要的不是程序,而是認真、仔細的讀通IIC協(xié)議。!
提示命令、地址、數(shù)據(jù)……
作者: zl2168    時間: 2018-3-17 18:06
先學(xué)理論,打基礎(chǔ),否則,問題多多,事倍功半。
作者: QWER01234    時間: 2018-3-17 18:49
這段程序配合著iic的通信協(xié)議和時序圖,那么大概會看懂一點




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1