![I2C通信原理及程序詳細(xì)講解_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/a489142a-726d-4b0d-895f-f8b65d3071d6/a489142a-726d-4b0d-895f-f8b65d3071d61.gif)
![I2C通信原理及程序詳細(xì)講解_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/a489142a-726d-4b0d-895f-f8b65d3071d6/a489142a-726d-4b0d-895f-f8b65d3071d62.gif)
![I2C通信原理及程序詳細(xì)講解_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/a489142a-726d-4b0d-895f-f8b65d3071d6/a489142a-726d-4b0d-895f-f8b65d3071d63.gif)
![I2C通信原理及程序詳細(xì)講解_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/a489142a-726d-4b0d-895f-f8b65d3071d6/a489142a-726d-4b0d-895f-f8b65d3071d64.gif)
![I2C通信原理及程序詳細(xì)講解_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/a489142a-726d-4b0d-895f-f8b65d3071d6/a489142a-726d-4b0d-895f-f8b65d3071d65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、I2C通信:起始條件:SCL為高電平,SDA電平從高變低,這一變化即完成了通 信的起始條件。起始條件和數(shù)據(jù)通信間,通常會有延時要求具體的指標(biāo)見設(shè)備說明。數(shù)據(jù)傳輸階段:一字節(jié)需要9個時鐘周期;且每一位需要一個時鐘周 期;如上圖所示,ADDRESS目標(biāo)設(shè)備的地址,R/ w為通信的的方 向位;"1"時表示讀,即后續(xù)的數(shù)據(jù)由目標(biāo)設(shè)備發(fā)出,主機(jī)進(jìn)行接收; "0"時表示寫,即后續(xù)的數(shù)據(jù)由主機(jī)發(fā)出目標(biāo)設(shè)備進(jìn)行接收。當(dāng)ACK信號為"0"時,說明接收成功;為"1"時,說明接收失敗。 每個字節(jié)的傳輸都是由高位(MSB劇低位(LS咪次進(jìn)
2、行傳輸。 在數(shù)據(jù)通信過程中,總是由數(shù)據(jù)接收方發(fā)出ACK信號。終止階段:當(dāng)主機(jī)完成數(shù)據(jù)通信,并終止本次傳輸時會發(fā)出終止信號。 當(dāng)SCL是高電平時,SDA電平由低變高,這個變化意味著傳輸終止。注:每個時鐘周期的高電平期間,SDA的數(shù)據(jù)狀態(tài)達(dá)到穩(wěn)定。下面給出了模擬I2C總線進(jìn)行讀寫的偽代碼,用以說明如何使用GPIO實現(xiàn)I2C通信:int i2c_start()初始化GPIO 口set_gpio_direction(SDA, OUTP); set_gpio_direction (SCL, OUTP);set_gpio_value(SDA, 1);set_gpio_value(SCL, 1);delay
3、();/起始條件set_gpio_value(SDA, 0);delay();void i2c_stop()set_gpio_value(SCL, 1);set_gpio_direction(SDA, OUTP);set_gpio_value(SDA, 0);delay();set_gpio_value(SDA, 1);/* I2C讀取ACK信號(寫數(shù)據(jù)時使用 非0表示ACK信號無效*/unsigned char i2c_read_ack()unsigned char r;set_gpio_direction(SDA, INP);/* I2C 起始條件*/設(shè)置SDA方向為輸出設(shè)置SCL方向為輸
4、出設(shè)置SDA為高電平設(shè)置SCL為高電平/ 延時/SCL為高電平時,SDA由高變低/適當(dāng)延時/* I2C 終止條件*/SCL高電平時,SDA由低變高)返回值:。表示ACK信號有效;/設(shè)置SDA方向為輸入set_gpio_value(SCL,0);r = get_gpio_value(SDA);delay();set_gpio_value(SCL,1);/ SCL變低/讀取ACK言號/ SCL變高delay();return r;/* I2C發(fā)出ACK信號(讀數(shù)據(jù)日t使用)*/int i2c_send_ack()set_gpio_direction(SDA, OUTP);set_gpio_valu
5、e(SCL,0);set_gpio_value(SDA, 0);delay();set_gpio_value(SCL,1);delay();void i2c_write_byte(unsigned char b) /* I2C 字節(jié)寫int i;set_gpio_direction(SDA, OUTP);for (i=7; i>=0; i-)set_gpio_value(SCL, 0);delay();set_gpio_value(SDA, b & (1<<i);set_gpio_value(SCL, 1);delay();i2c_read_ack();/設(shè)置SDA方
6、向為輸出/ SCL變低/發(fā)出ACK信號/ SCL變高*/設(shè)置SDA方向為輸出/ SCL變低/從高位到低位依次發(fā)送數(shù)據(jù)/ SCL變高檢查目標(biāo)設(shè)備的ACK信號/* I2C 字節(jié)讀 */unsigned char i2c_read_byte()int i;unsigned char r = 0;設(shè)置SDA方向為輸入/ SCL變低/ 高 位到低 位依次數(shù)據(jù)讀取/ SCL變高向目標(biāo)設(shè)備發(fā)送ACK信號set_gpio_direction(SDA, INP);for (i=7; i>=0; i-)set_gpio_value(SCL, 0);delay();r = (r <<1) | ge
7、t_gpio_value(SDA);set_gpio_value(SCL, 1);delay();i2c_send_ack();return r;/* I2C讀操作 addr:目標(biāo)設(shè)備地址buf:讀緩沖區(qū) len:讀入字節(jié)的長度*/ void i2c_read(unsigned char addr, unsigned char* buf, int len) int i;unsigned char t;/起始條件,開始數(shù)據(jù)通信/低位為 1,表示讀數(shù)據(jù)i2c_start();/發(fā)送地址和數(shù)據(jù)讀寫方向t = (addr << 1) | 1;i2c_write_byte(t);/讀入數(shù)據(jù)for (i=0; i<len; i+)bufi = i2c_read_byte();/終止條件,結(jié)束數(shù)據(jù)通信i2c_stop();/* I2C寫操作 addr:目標(biāo)設(shè)備地址buf:寫緩沖區(qū) len:寫入字節(jié)的長度*/ void i2c_write (unsigned char addr, unsigned char* buf, int len) int i;unsigned char t;/ 起始條件,開始數(shù)據(jù)通信/ 低位為0,表示寫數(shù)據(jù)i2c_start();/發(fā)送地址和數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國保健杯盒市場調(diào)查研究報告
- 2025年自動平圓燙金機(jī)項目可行性研究報告
- 2025至2031年中國緞檔提花純棉面巾行業(yè)投資前景及策略咨詢研究報告
- 2025年環(huán)氧/聚酯混合型粉末涂料項目可行性研究報告
- 2025至2031年中國液晶顯示器機(jī)殼行業(yè)投資前景及策略咨詢研究報告
- 2025年日夜轉(zhuǎn)換紅外防水?dāng)z像機(jī)項目可行性研究報告
- 2025至2031年中國小型斷路器配件行業(yè)投資前景及策略咨詢研究報告
- 2025年多頻超聲波治療儀項目可行性研究報告
- 2025年臥式玻璃清洗烘干機(jī)項目可行性研究報告
- 2025年低應(yīng)力保護(hù)膠項目可行性研究報告
- GB/T 308.1-2013滾動軸承球第1部分:鋼球
- GB/T 1096-2003普通型平鍵
- GA/T 1163-2014人類DNA熒光標(biāo)記STR分型結(jié)果的分析及應(yīng)用
- 新員工入場安全教育培訓(xùn)課件
- 優(yōu)秀員工榮譽(yù)證書模板
- 2023機(jī)械工程師考試試題及答案
- 精選裝飾工程室內(nèi)拆除專項施工方案
- 2022年二年級生命安全教育教案
- 豐田汽車戰(zhàn)略規(guī)劃與戰(zhàn)略管理體系研究(2021)
- 公共政策學(xué)(第三版)-課件
- 文物保護(hù)項目可行性研究報告
評論
0/150
提交評論