在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是I2C協(xié)議?

汽車電子技術(shù) ? 來源:嵌入式悅翔園 ? 作者:李斌 ? 2023-02-17 10:58 ? 次閱讀

1、什么是I2C協(xié)議

I2C協(xié)議是一個(gè)允許多個(gè) “從機(jī)” 芯片和一個(gè)或更多的 “主機(jī)” 芯片進(jìn)行通訊的協(xié)議。它就像串行外設(shè)接口(SPI)一樣,只能用于 短距離通信 。又像異步串行接口(如RS232UART), 只需要兩根信號線來交換信息

實(shí)現(xiàn)I2C需要兩根信號線完成信息交換,SCL時(shí)鐘信號線,SDA數(shù)據(jù)輸入/輸出線。它屬于 同步通信 ,由于輸入輸出數(shù)據(jù)均使用一根線,因此通信方向?yàn)?半雙工

總結(jié):短距離、一主多從、半雙工、兩根線、同步通訊圖片

2、名詞解釋

什么是半雙工呢?什么是同步通訊?什么是異步通訊?

2.1 什么是半雙工?

數(shù)據(jù)通信中,數(shù)據(jù)在線路上的傳送方式可以分為 單工通信半雙工通信全雙工通信三種。

單工通信: 是指消息只能單方向傳輸?shù)墓ぷ鞣绞健@邕b控、遙測(一部分),就是單工通信方式。單工通信信道是單向信道,發(fā)送端和接收端的身份是固定的,發(fā)送端只能發(fā)送信息,不能接收信息;接收端只能接收信息,不能發(fā)送信息,數(shù)據(jù)信號僅從一端傳送到另一端,即信息流是單方向的。

半雙工: 是指數(shù)據(jù)可以沿兩個(gè)方向傳送,但同一時(shí)刻一個(gè)信道只允許單方向傳送,因此又被稱為 雙向交替通信 。(信息在兩點(diǎn)之間能夠在兩個(gè)方向上進(jìn)行發(fā)送,但不能同時(shí)發(fā)送的工作方式。)半雙工方式要求收發(fā)兩端都有發(fā)送裝置和接收裝置。由于這種方式要頻繁變換信道方向,故效率低,但可以節(jié)約傳輸線路。

全雙工: 是指在通信的任意時(shí)刻,線路上可以同時(shí)存在A到B和B到A的雙向信號傳輸。 在全雙工方式下,通信系統(tǒng)的每一端都設(shè)置了發(fā)送器和接收器 ,因此,能控制數(shù)據(jù)同時(shí)在兩個(gè)方向上傳送。全雙工方式無需進(jìn)行方向的切換,因此,沒有切換操作所產(chǎn)生的時(shí)間延遲,這對那些不能有時(shí)間延誤的交互式應(yīng)用(例如遠(yuǎn)程監(jiān)測和控制系統(tǒng))十分有利。比如,電話機(jī)則是一種全雙工設(shè)備,其通話雙方可以同時(shí)進(jìn)行對話。

圖片

2.2 什么是同步通訊

同步通信: 發(fā)送端在發(fā)送串行數(shù)據(jù)的同時(shí),提供一個(gè)時(shí)鐘信號,并按照一定的約定(例如:在時(shí)鐘信號的上升沿的時(shí)候,將數(shù)據(jù)發(fā)送出去)發(fā)送數(shù)據(jù),接收端根據(jù)發(fā)送端提供的時(shí)鐘信號,以及大家的約定,接收數(shù)據(jù)。如:I2C、SPI等有時(shí)鐘信號的協(xié)議,都屬于這種通信方式。

異步通信: 接收方并不知道數(shù)據(jù)什么時(shí)候會(huì)到達(dá),收發(fā)雙方可以有各自自己的時(shí)鐘。發(fā)送方發(fā)送的時(shí)間間隔可以不均,接收方是在數(shù)據(jù)的起始位和停止位的幫助下實(shí)現(xiàn)信息同步的。這種傳輸通常是很小的分組,比如:一個(gè)字符為一組,數(shù)據(jù)組配備起始位和結(jié)束位。所以這種傳輸方式的效率是比較低的,因?yàn)轭~外加入了很多的輔助位作為負(fù)載,常用在低速的傳輸中。

同步通信與異步通信區(qū)別:

(1)同步通信要求接收端時(shí)鐘頻率和發(fā)送端時(shí)鐘頻率一致,發(fā)送端發(fā)送連續(xù)的比特流;異步通信時(shí)不要求接收端時(shí)鐘和發(fā)送端時(shí)鐘同步,發(fā)送端發(fā)送完一個(gè)字節(jié)后,可經(jīng)過任意長的時(shí)間間隔再發(fā)送下一個(gè)字節(jié)。

(2)同步通信效率高,異步通信效率較低。

(3)同步通信較復(fù)雜,雙方時(shí)鐘的允許誤差較小;異步通信簡單,雙方時(shí)鐘可允許一定誤差。

(4)同步通信可用于點(diǎn)對多點(diǎn);異步通信只適用于點(diǎn)對點(diǎn)。

3、I2C的功能特點(diǎn)

I2C最重要的功能包括:

  • 只需要兩條總線;
  • 沒有嚴(yán)格的波特率要求,例如使用RS232,主設(shè)備生成總線時(shí)鐘;
  • 所有組件之間都存在簡單的主/從關(guān)系,連接到總線的每個(gè)設(shè)備均可通過唯一地址進(jìn)行軟件尋址;
  • I2C是真正的多主設(shè)備總線,可提供仲裁和沖突檢測
  • 傳輸速度:
    • 標(biāo)準(zhǔn)模式:Standard Mode = 100 Kbps
    • 快速模式:Fast Mode = 400 Kbps
    • 高速模式:High speed mode = 3.4 Mbps
    • 超快速模式:Ultra fast mode = 5 Mbps
  • 最大主設(shè)備數(shù):無限制;
  • 最大從機(jī)數(shù):理論上是127;圖片

4、I2C的高阻態(tài)

漏極開路(Open Drain)即高阻狀態(tài),適用于輸入/輸出,其可獨(dú)立輸入/輸出低電平和高阻狀態(tài),若需要產(chǎn)生高電平,則需使用外部上拉電阻

高阻狀態(tài):高阻狀態(tài)是三態(tài)門電路的一種狀態(tài)。邏輯門的輸出除有高、低電平兩種狀態(tài)外,還有第三種狀態(tài)——高阻狀態(tài)的門電路。電路分析時(shí)高阻態(tài)可做開路理解。

我們知道IIC的所有設(shè)備是接在一根總線上的,那么我們進(jìn)行通信的時(shí)候往往只是幾個(gè)設(shè)備進(jìn)行通信,那么這時(shí)候其余的空閑設(shè)備可能會(huì)受到總線干擾,或者干擾到總線,怎么辦呢?

為了避免總線信號的混亂,IIC的空閑狀態(tài)只能有外部上拉, 而此時(shí)空閑設(shè)備被拉到了高阻態(tài),也就是相當(dāng)于斷路, 整個(gè)IIC總線只有開啟了的設(shè)備才會(huì)正常進(jìn)行通信,而不會(huì)干擾到其他設(shè)備。

5、數(shù)據(jù)傳輸協(xié)議

主設(shè)備和從設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí)遵循以下協(xié)議格式。數(shù)據(jù)通過一條SDA數(shù)據(jù)線在主設(shè)備和從設(shè)備之間傳輸0和1的串行數(shù)據(jù)。串行數(shù)據(jù)序列的結(jié)構(gòu)可以分為:圖片

5.1 開始位

當(dāng)主設(shè)備決定開始通訊時(shí),需要發(fā)送開始信號,并且執(zhí)行以下過程:

  • 將SDA線由高電平切換成低電平;
  • 將SCL線由高電平切換成低電平;

主設(shè)備發(fā)送開始條件信號之后,所有從機(jī)即使處于睡眠模式也將變?yōu)榛顒?dòng)狀態(tài),并等待接收地址位。圖片

5.2 地址位

地址位支持7bit、10bit,主設(shè)備如果需要向從機(jī)發(fā)送/接收數(shù)據(jù),首先要發(fā)送對應(yīng)從機(jī)的地址,然后會(huì)匹配總線上掛載的從機(jī)的地址,故地址為主要用來辨識不同設(shè)備。

地址位由 主機(jī)發(fā)送 ,從設(shè)備負(fù)責(zé)接受并識別該地址是否位自己地址。

5.3 讀寫位

由于I2C是半雙工通訊,所以設(shè)備需要確定數(shù)據(jù)傳輸?shù)姆较颍室肓俗x寫位。

  • 如果主設(shè)備需要將數(shù)據(jù)發(fā)送到從設(shè)備,則該位設(shè)置為 0;
  • 如果主設(shè)備需要往從設(shè)備接收數(shù)據(jù),則將其設(shè)置為 1 ;

讀寫位由 主機(jī)發(fā)送 ;1表示讀操作,0表示寫操作。

5.4 應(yīng)答位

I2C最大的一個(gè)特點(diǎn)就是有完善的應(yīng)答機(jī)制,從機(jī)接收到主機(jī)的數(shù)據(jù)時(shí),會(huì)回復(fù)一個(gè)應(yīng)答信號來通知主機(jī)表示“我收到了”。

應(yīng)答信號: 出現(xiàn)在1個(gè)字節(jié)傳輸完成之后,即第9個(gè)SCL時(shí)鐘周期內(nèi),此時(shí)主機(jī)需要釋放SDA總線,把總線控制權(quán)交給從機(jī),由于上拉電阻的作用,此時(shí)總線為高電平,如果從機(jī)正確的收到了主機(jī)發(fā)來的數(shù)據(jù),會(huì)把SDA拉低,表示應(yīng)答響應(yīng)。圖片非應(yīng)答信號: 當(dāng)?shù)?個(gè)SCL時(shí)鐘周期時(shí),SDA保持高電平,表示非應(yīng)答信號。圖片非應(yīng)答信號可能是主機(jī)產(chǎn)生也可能是從機(jī)產(chǎn)生,產(chǎn)生非應(yīng)答信號的情況主要有以下幾種:

  • I2C總線上沒有主機(jī)所指定地址的從機(jī)設(shè)備;
  • 從機(jī)正在執(zhí)行一些操作,處于忙狀態(tài),還沒有準(zhǔn)備好與主機(jī)通訊;
  • 主機(jī)發(fā)送的一些控制命令,從機(jī)不支持;
  • 主機(jī)接收從機(jī)數(shù)據(jù)時(shí),主機(jī)產(chǎn)生非應(yīng)答信號,通知從機(jī)數(shù)據(jù)傳輸結(jié)束,不要再發(fā)數(shù)據(jù)了;

5.5 數(shù)據(jù)位

I2C數(shù)據(jù)總線傳輸要保證在SCL為高電平時(shí),SDA數(shù)據(jù)穩(wěn)定,所以SDA上數(shù)據(jù)變化只能在SCL為低電平時(shí)圖片一次傳輸?shù)臄?shù)據(jù)總共有8位,由發(fā)送方設(shè)置,它需要將數(shù)據(jù)位傳輸?shù)浇邮辗健0l(fā)送之后會(huì)緊跟一個(gè)ACK / NACK位,如果接收器成功接收到數(shù)據(jù),則從機(jī)發(fā)送ACK。否則,從機(jī)發(fā)送NACK。

數(shù)據(jù)可以重復(fù)發(fā)送多個(gè),直到接收到停止位為止。

5.6 停止位

當(dāng)主設(shè)備決定結(jié)束通訊時(shí),需要發(fā)送結(jié)束信號,需要執(zhí)行以下動(dòng)作:

  • 先將SDA線從低電壓電平切換到高電壓電平;
  • 再將SCL線從高電平拉到低電平;圖片

5.7 總結(jié)

寄存器的標(biāo)準(zhǔn)流程為:

  1. Master發(fā)起START
  2. Master發(fā)送I2C addr(7bit)和w操作0(1bit),等待ACK
  3. Slave發(fā)送ACK
  4. Master發(fā)送reg addr(8bit),等待ACK
  5. Slave發(fā)送ACK
  6. Master發(fā)送data(8bit),即要寫入寄存器中的數(shù)據(jù),等待ACK
  7. Slave發(fā)送ACK
  8. 第6步和第7步可以重復(fù)多次,即順序?qū)懚鄠€(gè)寄存器
  9. Master發(fā)起STOP

讀寄存器的標(biāo)準(zhǔn)流程為:

  1. Master發(fā)送I2C addr(7bit)和w操作1(1bit),等待ACK
  2. Slave發(fā)送ACK
  3. Master發(fā)送reg addr(8bit),等待ACK
  4. Slave發(fā)送ACK
  5. Master發(fā)起START
  6. Master發(fā)送I2C addr(7bit)和r操作1(1bit),等待ACK
  7. Slave發(fā)送ACK
  8. Slave發(fā)送data(8bit),即寄存器里的值
  9. Master發(fā)送ACK
  10. 第8步和第9步可以重復(fù)多次,即順序讀多個(gè)寄存器

6、仲裁機(jī)制

在多主的通信系統(tǒng)中。總線上有多個(gè)節(jié)點(diǎn),它們都有自己的尋址地址,可以作為從節(jié)點(diǎn)被別的節(jié)點(diǎn)訪問,同時(shí)它們都可以作為主節(jié)點(diǎn)向其他的節(jié)點(diǎn)發(fā)送控制字節(jié)和傳送數(shù)據(jù)。

但是如果有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)都向總線上發(fā)送啟動(dòng)信號并開始傳送數(shù)據(jù),這樣就形成了沖突。要解決這種沖突,就要進(jìn)行仲裁的判決,這就是I2C總線上的仲裁。

I2C總線上的仲裁分兩部分:SCL線的同步和SDA線的仲裁。

6.1 SCL線的同步

SCL同步是由于總線具有線 “與” 的邏輯功能(開漏輸出),即只要有一個(gè)節(jié)點(diǎn)發(fā)送低電平時(shí),總線上就表現(xiàn)為低電平。當(dāng)所有的節(jié)點(diǎn)都發(fā)送高電平時(shí),總線才能表現(xiàn)為高電平。正是由于線“與”邏輯功能的原理,當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送時(shí)鐘信號時(shí),在總線上表現(xiàn)的是統(tǒng)一的時(shí)鐘信號,這就是SCL的同步原理。

圖片

在這里插入圖片描述

6.2 SDA線的仲裁

總線仲裁是為了解決多設(shè)備同時(shí)競爭中線控制權(quán)的問題,通過一定的裸機(jī)來決定哪個(gè)設(shè)備能夠獲得最終的總線控制權(quán)。

SDA線的仲裁也是建立在總線具有線“與”邏輯功能的原理上的。節(jié)點(diǎn)在發(fā)送1位數(shù)據(jù)后,比較總線上所呈現(xiàn)的數(shù)據(jù)與自己發(fā)送的是否一致(類似于CAN總線的回讀機(jī)制)。

  • 是,繼續(xù)發(fā)送;
  • 否則,退出競爭;

I2C總線的控制邏輯:低電平優(yōu)先

SDA線的仲裁可以保證I2C總線系統(tǒng)在多個(gè)主節(jié)點(diǎn)同時(shí)企圖控制總線時(shí)通信正常進(jìn)行并且數(shù)據(jù)不丟失, 總線系統(tǒng)通過仲裁只允許一個(gè)主節(jié)點(diǎn)可以繼續(xù)占據(jù)總線

圖片圖片

上圖過程分析:

第一個(gè)周期:所有設(shè)備發(fā)送1,做與運(yùn)算后的結(jié)果為1,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第二個(gè)周期:所有設(shè)備發(fā)送1,做與運(yùn)算后的結(jié)果為1,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第三個(gè)周期:所有設(shè)備發(fā)送0,做與運(yùn)算后的結(jié)果為0,與自己發(fā)送的數(shù)據(jù)相同,繼續(xù)發(fā)送;
第四個(gè)周期:AB設(shè)備發(fā)送1C設(shè)備發(fā)送0,做與運(yùn)算后結(jié)果為0,與AB發(fā)送的數(shù)據(jù)不同,則AB退出競爭,節(jié)點(diǎn)C獲勝;

注:若AB兩個(gè)設(shè)備發(fā)送0C設(shè)備發(fā)送1,這最后與運(yùn)算結(jié)果為0,與AB數(shù)據(jù)格式相同,與C數(shù)據(jù)格式不同,則C退出,AB繼續(xù)發(fā)送,直至AB中有一個(gè)退出。

SDA仲裁和SCL時(shí)鐘同步處理過程沒有先后關(guān)系,而是同時(shí)進(jìn)行的。

7、I2C死鎖

在實(shí)際使用過程中,I2C比較容易出現(xiàn)的一個(gè)問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時(shí)表現(xiàn)為SCL為高,SDA一直為低。

在I2C主設(shè)備進(jìn)行讀寫操作的過程中,主設(shè)備在開始信號后控制SCL產(chǎn)生8個(gè)時(shí)鐘脈沖,然后拉低SCL信號為低電平,在這個(gè)時(shí)候,從設(shè)備輸出應(yīng)答信號,將SDA信號拉為低電平。

如果這個(gè)時(shí)候主設(shè)備異常復(fù)位,SCL就會(huì)被釋放為高電平。此時(shí),如果從設(shè)備沒有復(fù)位,就會(huì)繼續(xù)I2C的應(yīng)答,將SDA一直拉為低電平,直到SCL變?yōu)榈碗娖剑艜?huì)結(jié)束應(yīng)答信號。

而對于I2C主設(shè)備來說,復(fù)位后檢測SCL和SDA信號,如果發(fā)現(xiàn)SDA信號為低電平,則會(huì)認(rèn)為I2C總線被占用,會(huì)一直等待SCL和SDA信號變?yōu)楦唠娖健?/p>

這樣,I2C主設(shè)備等待從設(shè)備釋放SDA信號,而同時(shí)I2C從設(shè)備又在等待主設(shè)備將SCL信號拉低以釋放應(yīng)答信號,兩者相互等待,I2C總線進(jìn)人一種死鎖狀態(tài)。

同樣,當(dāng)I2C進(jìn)行讀操作,I2C從設(shè)備應(yīng)答后輸出數(shù)據(jù),如果在這個(gè)時(shí)刻I2C主設(shè)備異常復(fù)位而此時(shí)I2C從設(shè)備輸出的數(shù)據(jù)位正好為0,也會(huì)導(dǎo)致I2C總線進(jìn)入死鎖狀態(tài)。

8、I2C的代碼實(shí)現(xiàn)

參考了STM32HAL庫中I2C驅(qū)動(dòng),主設(shè)備發(fā)送函數(shù)HAL_I2C_Master_Transmit()具體如下:

/**
  * @brief  Transmits in master mode an amount of data in blocking mode.
  * @param  hi2c Pointer to a I2C_HandleTypeDef structure that contains
  *                the configuration information for the specified I2C.
  * @param  DevAddress Target device address: The device 7 bits address value
  *         in datasheet must be shifted to the left before calling the interface
  * @param  pData Pointer to data buffer
  * @param  Size Amount of data to be sent
  * @param  Timeout Timeout duration
  * @retval HAL status
  */
HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, 
                                          uint16_t DevAddress, 
                                          uint8_t *pData, 
                                          uint16_t Size, 
                                          uint32_t Timeout){
  uint32_t tickstart = 0x00U;

  /* Init tickstart for timeout management*/
  tickstart = HAL_GetTick();

  if(hi2c->State == HAL_I2C_STATE_READY){
    /* Wait until BUSY flag is reset */
    if(I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK){
      return HAL_BUSY;
    }

    /* Process Locked */
    __HAL_LOCK(hi2c);

    /* Check if the I2C is already enabled */
    if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE){
      /* Enable I2C peripheral */
      __HAL_I2C_ENABLE(hi2c);
    }

    /* Disable Pos */
    hi2c->Instance->CR1 &= ~I2C_CR1_POS;

    hi2c->State     = HAL_I2C_STATE_BUSY_TX;
    hi2c->Mode      = HAL_I2C_MODE_MASTER;
    hi2c->ErrorCode = HAL_I2C_ERROR_NONE;

    /* Prepare transfer parameters */
    hi2c->pBuffPtr    = pData;
    hi2c->XferCount   = Size;
    hi2c->XferOptions = I2C_NO_OPTION_FRAME;
    hi2c->XferSize    = hi2c->XferCount;

    /* Send Slave Address */
    if(I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK){
      if(hi2c->ErrorCode == HAL_I2C_ERROR_AF){
        /* Process Unlocked */
        __HAL_UNLOCK(hi2c);
        return HAL_ERROR;
      }else{
        /* Process Unlocked */
        __HAL_UNLOCK(hi2c);
        return HAL_TIMEOUT;
      }
    }

    /* Clear ADDR flag */
    __HAL_I2C_CLEAR_ADDRFLAG(hi2c);

    while(hi2c->XferSize > 0U){
      /* Wait until TXE flag is set */
      if(I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK){
        if(hi2c->ErrorCode == HAL_I2C_ERROR_AF){
          /* Generate Stop */
          hi2c->Instance->CR1 |= I2C_CR1_STOP;
          return HAL_ERROR;
        }else{
          return HAL_TIMEOUT;
        }
      }
      /* Write data to DR */
      hi2c->Instance->DR = (*hi2c->pBuffPtr++);
      hi2c->XferCount--;
      hi2c->XferSize--;

      if((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) 
         && (hi2c->XferSize != 0U)){
        /* Write data to DR */
        hi2c->Instance->DR = (*hi2c->pBuffPtr++);
        hi2c->XferCount--;
        hi2c->XferSize--;
      }
      /* Wait until BTF flag is set */
      if(I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK){
          
        if(hi2c->ErrorCode == HAL_I2C_ERROR_AF){
          /* Generate Stop */
          hi2c->Instance->CR1 |= I2C_CR1_STOP;
          return HAL_ERROR;
        }else{
          return HAL_TIMEOUT;
        }
      }
    }

    /* Generate Stop */
    hi2c->Instance->CR1 |= I2C_CR1_STOP;

    hi2c->State = HAL_I2C_STATE_READY;
    hi2c->Mode = HAL_I2C_MODE_NONE;
    
    /* Process Unlocked */
    __HAL_UNLOCK(hi2c);

    return HAL_OK;
  }else{
    return HAL_BUSY;
  }
}

致謝

參考文獻(xiàn)如下:

  • IIC原理超詳細(xì)講解---值得一看
  • 一文看懂I2C協(xié)議
  • i2c總線協(xié)議簡介
  • I2C死鎖及解決方法
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423621
  • I2C協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8475
  • 串行外設(shè)接口
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    4014
收藏 人收藏

    評論

    相關(guān)推薦

    全面掌握面試必考題I2C協(xié)議 - 第5節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:01:51

    全面掌握面試必考題I2C協(xié)議 - 第6節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:02:42

    全面掌握面試必考題I2C協(xié)議 - 第7節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:03:32

    全面掌握面試必考題I2C協(xié)議 - 第10節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:06:03

    全面掌握面試必考題I2C協(xié)議 - 第11節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:06:53

    全面掌握面試必考題I2C協(xié)議 - 第12節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:07:43

    全面掌握面試必考題I2C協(xié)議 - 第13節(jié)

    I2C協(xié)議
    充八萬
    發(fā)布于 :2023年09月01日 19:08:34

    I2C最新協(xié)議標(biāo)準(zhǔn)

    I2C最新協(xié)議標(biāo)準(zhǔn),詳細(xì)介紹了IIC信號要求,供大家參考,
    發(fā)表于 12-22 17:59 ?13次下載

    I2C協(xié)議標(biāo)準(zhǔn)(中文版)

    I2C協(xié)議標(biāo)準(zhǔn)(中文版)_twi_iic,很好的單片機(jī)學(xué)習(xí)資料。
    發(fā)表于 03-21 17:31 ?0次下載

    STM32學(xué)習(xí)之I2C協(xié)議(讀寫EEPROM)

    關(guān)于STM32學(xué)習(xí)分享第七章 I2C協(xié)議(讀寫EEPROM)文章目錄關(guān)于STM32學(xué)習(xí)分享前言二、代碼1.i2c.c2.i2c.h3.main.c總結(jié)前言開始!開始!單片機(jī)的I2C
    發(fā)表于 11-30 15:21 ?32次下載
    STM32學(xué)習(xí)之<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>(讀寫EEPROM)

    什么是I2C協(xié)議

    I2C協(xié)議是一個(gè)允許多個(gè) “從機(jī)” 芯片和一個(gè)或更多的 “主機(jī)” 芯片進(jìn)行通訊的協(xié)議。它就像串行外設(shè)接口(SPI)一樣,只能用于短距離通信。又像異步串行接口(如RS232或UART), 只需要兩根信號線來交換信息。
    發(fā)表于 10-11 16:46 ?4511次閱讀

    關(guān)于I2C協(xié)議介紹

    你好,我是愛吃魚香ROS的小魚。本節(jié)主要介紹I2C協(xié)議,并將其主要特點(diǎn)拎出來和大家說說。
    的頭像 發(fā)表于 07-13 15:04 ?1420次閱讀
    關(guān)于<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>介紹

    使用I2C協(xié)議點(diǎn)亮OLED

    你好,我是愛吃魚香ROS的小魚。本節(jié)我們就嘗試直接使用I2C協(xié)議來點(diǎn)亮OLED,因?yàn)橹饕獪y試I2C協(xié)議,所以對于復(fù)雜的顯示處理部分小魚就略過了,畢竟有方便的開源庫使用,我們也不用那么糾
    的頭像 發(fā)表于 07-15 16:47 ?1960次閱讀
    使用<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>點(diǎn)亮OLED

    SPI自舉程序中使用的I2C協(xié)議

    電子發(fā)燒友網(wǎng)站提供《SPI自舉程序中使用的I2C協(xié)議.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:41 ?0次下載
    SPI自舉程序中使用的<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>

    STM32自舉程序中使用的I2C協(xié)議

    電子發(fā)燒友網(wǎng)站提供《STM32自舉程序中使用的I2C協(xié)議.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:27 ?0次下載
    STM32自舉程序中使用的<b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>
    主站蜘蛛池模板: 免费一级做a爰片久久毛片| 亚洲天堂网在线观看| 亚洲高清毛片| 久久视频精品线视频在线网站| 黄色三级录像| 色之综综| 欧美极品另类| 在线成人免费| 狠狠色网| 天天成人| 91大神免费视频| 色婷婷色综合激情国产日韩| 美女被色| 五月天综合在线| 一区二区亚洲视频| 五月婷婷激情| 久青草国产高清在线视频| 成 人 免费 网站| 免费看黄在线| 中国一级黄色毛片| 欧美日韩一区二区三区视频在线观看| 午夜手机福利视频| 欧美系列在线观看| 日韩怡红院| 日韩一级片在线播放| 一区二区三区四区精品| 国产精品14p| 国产精品护士| 四虎永久在线精品国产免费| 国产一区二区三区影院| 97精品伊人久久大香线蕉| 生活片毛片| www.色播.com| 四虎黄色网| 日本wwww色| 黄色午夜剧场| 最新国产厕所| bt种子天堂| 玖玖在线国产精品| 成人在线观看网站| 777欧美|