找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1850|回復(fù): 0
收起左側(cè)

關(guān)于IIC協(xié)議的簡(jiǎn)介

[復(fù)制鏈接]
ID:524015 發(fā)表于 2020-9-25 20:17 | 顯示全部樓層 |閱讀模式
無(wú)論在51或者stm32的學(xué)習(xí)中,我們都會(huì)使用到IIC總線的數(shù)據(jù)傳送,從當(dāng)初51到現(xiàn)在的stm32的學(xué)習(xí)。iic一直都是只會(huì)簡(jiǎn)單的使用并未很仔細(xì)的去研究中間每一個(gè)過(guò)程或者時(shí)序。今天用了一天的時(shí)間去理解IIC。當(dāng)然這都是建立在以往的學(xué)習(xí)經(jīng)驗(yàn)之中而得。一下都是我自己的一些理解和對(duì)照程序而寫(xiě)的一些IIC的使用過(guò)程。PS:純屬本人手打,不喜勿碰!。!iic總線時(shí)序理解:
24C04
引腳:
NC (1)  VCC(8)
A1 (2)  WP (7)
A2 (3)  SCL(6)
GBD(4) SDA(5)
注:SCL
設(shè)置start信號(hào)和stop信號(hào),由于此時(shí)是STM32對(duì)24c02發(fā)送信號(hào),所以SCL和SDA設(shè)置為輸出狀態(tài),即:SDA_OUT();
由時(shí)序圖可知:
START:SCL=1,SDA=1,delay(),SDA=0,delay(),SCL=0,//時(shí)鐘線為高,數(shù)據(jù)線從高到低的跳變
STOP :SCL=0,SDA=0,delay(),SCL=1,delay(),SDA=1,//時(shí)鐘線為高,數(shù)據(jù)線從低到高的跳變
STM32程序:
void IIC_Start(void)
{
SDA_OUT(); //sda線輸出
IIC_SDA=1;
IIC_SCL=1;
delay_us(4);
IIC_SDA=0;//START:when CLK is high,DATA change form high to low
delay_us(4);
IIC_SCL=0;//鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù)
}
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;//發(fā)送I2C總線結(jié)束信號(hào)
delay_us(4);
}


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表