• <menu id="uc00s"><tt id="uc00s"></tt></menu>
        • 帶你了解STM32中的I2C

        最后更新:2個月前 手機定位技術交流文章

        帶你了解 STM32 中的 I2C

        如果你想研究一臺機器, 你可以聽我的, 信任我個人, 或者在評論部分回應我。 我們直接控 STM32 的兩 GPIO 引腳,分別用 SCL SD A ,根據上述信號的時間序列,直接控制 LED 燈那樣控制引腳的輸 ( 若是接收數據時則讀 SDA ) , I2 C 這將使我們能夠進行對口,同樣,如果我們按 USAR T 你想做什么 管理你的腳是正確的。 USAR T 通信。 只要協議得到遵循, 能按通訊標準交互。

        直接控 GPIO 當腳趾水平生成電信時間序列時,您需要它。 CPU 隨時控制推力狀態。 這個方式叫作 軟件模擬協 。

        當然 硬件協 方式 , STM32 I2C 片上外設專門負責實 I2C 通訊議定書,只要它已經建立。 這個 對外,它將產生一個協議要求的通信信號,發送和接收數據,并儲存數據。 , CP U 只要檢測到網站和訪問數據儲存庫的狀態,數據就會得到接收和傳送,這是一種硬件安排。 I2 C 協議的方式減輕 CPU 的工作, 而且讓 軟件設計更加簡單。

        STM32 I2C 外設簡介

        STM32 I2C 外部通信托管和支助 100Kbit/s 400Kbit/s 的速率,支 7 、 10 位設備地址,支 DMA 它負責數據傳輸和驗證。 I2C 外設還支 SMBus2.0 協議 , SMBus 協議 I2C 同樣,它主要用于膝上型計算機細胞管理。

        STM32 I2C 架構剖析

        通訊引腳

        I2C 地圖的左邊是所有硬件建設的基礎。 SCL SDA 線展開 ( 其中 SMBA 線用 SMBUS 的警告信號 , I2C 通訊沒有使 ) 。 STM32 芯片有多 I2C 外設,它們 I2C 通訊信號引出到不同 GPIO 在使用腳的時候,你必須適應這些特定的腳。 GPI O 引腳的復用功能,以 使用手冊 為準。

        時鐘控制邏輯

        SCL 線的時鐘信號, I2C 接口根據時間調節存款 。 (CCR ) 控制。參數大多是時鐘頻率。 I2C CCR 登記冊可以改變通信費率特點,例如:

        可選 I2C 通訊 / 模式,這兩個模式分 I2C 100/400Kbit/s 的通訊速率。

        在快速模式下可選 SCL 時鐘的占空比,可 Tlow/Thigh=2 Tlow/Thigh=16/ 9 模式,我們知 I2C 協議 SCL 高電平時 SDA 信號采樣 , SCL 低電平 SD A 準備下一個數據,修 SCL 數據抽樣受高低比率的影響。

        CCR 寄存器中還有一 12 位的配置因 CC R ,它 I2C 外部時鐘源協作、產出 SCL 時鐘 , STM32 I2C 外設都掛載 APB1 總線上,使 APB1 的時鐘 PCLK 1 , SCL 信號線輸出時鐘公式如下:

        計算結果得 CCR 3 0 要控制, 請將此值寫入此登記槽 。 IIC 的通訊速率 400KH z ,其實即使配置出來 SCL 時鐘不完全等于標準 400KH z , IIC 傳輸的準確性將不受影響,就象所有數據通信一樣。 SCL 只要保持時鐘頻率,它就得到協調。 偏差不要太大就行 。

        數據控制邏輯

        I2C SDA 信號主要與數據傳輸登記冊及其數據來源和目標有關。 (DR ) 、地址寄存 (OAR ) 、 PEC 寄存器以 SDA 數據行。在傳輸數據時,使用數據轉換登記冊。 數據寄存 逐項獲取數據源的數據。 SDA 當從外部收到數據時,發出信號線;使用數據傳輸登記冊。 SDA 由信號線取樣的數據一次保存一個。 數據寄存 在這里,如果數據可以確認,發送的數據將被視為有效。 PCE 計算器操作和數據存儲 PEC 寄存 中。

        STM32 I2C 在機器操作時,當收到設備地址信號時,數據傳輸記錄器收到地址。 STM32 的自身 I2C 地址寄存 回應主機所在位置 。 STM32 的自 I2C 地址可通過修 自身地址寄存 修改以允許兩者使用 I2C 為設備地址分別保留兩個地址。 OAR1 OAR2 中。

        整體控制邏輯

        合并協調的整體控制邏輯 I2C 用來管理邏輯的勞動模式 是由我們的設置決定的 控制寄存 (CR1/CR2 ) 參數影響控制邏輯。 外部工作時, 控制邏輯是根據外部任務的工作狀態確定的 。 狀態寄存 (SR1 SR2 ) 我們只需要讀讀這些 與保管人有關的空位。 I2 C 控制邏輯還負責根據需要管理生產。 I2C 中斷信號 、 DM A 請求及各 I2C 的通訊信 ( 啟動,暫停,并回復信號。 ) 。

        通訊過程

        使 I2C 在對外通訊方面,它將在不同層次的通訊上進行。 狀態寄存 (SR1 SR2 ) 數據比特存儲在參數中,我們可以通過讀取這些內存標記來確定通信狀況。

        主發送器

        圖中的 主發送 流程,即作 I2C 在發送來文時通過何種程序發送數據。

        主發送器通訊過程

        以下是主要發件人發送程序和事件說明:

        (1) 控制產生起始信 (S ) 當信號被激活時,會發生一些事情 EV 5 ,并會 SR1 寄存器 S B 1 表示已發送初始信號;

        (2) 傳送裝置的地址 等待反應信號 如果機器響應 就會出事 EV 6 EV 8 ,這 SR1 寄存器 ADD R TX E 位被 1 , ADDR 1 表示地址已經發送 , TXE 1 此值表示數據儲存庫為空 。

        (3) 以上步驟正常執行并 ADDR 位清零后,我們 I2C 數據寄存 D R 這里您正在寫入您要傳輸的數據 。 TXE 位會被重 0 ,表示數據登記冊不是空的。 , I2C 外設通 SDA 數據通過信號線發送和生成。 EV 8 事件, TXE 位被 1 ,然后用數個字節的數據重復操作;

        (4) 當我們完成傳輸數據后 控制器就完成了 I2C 設備產生一個停止信 (P ) ,這個時候會產 EV8_2 事件 , SR1 TXE BTF 位都被 1 ,表示通訊結束。

        假如我們使能 I2C 如果發生上述所有情況,它們就會形成。 I2C 信號中斷,使用相同的中斷服務功能。 I2C 服務恢復后我們就出發 查看 寄存器 確定是哪一種情況。

        主接收器

        然后,審查并執行初級接收程序。 I2C 當通信托管時,從外部世界接收數據的過程。

        以下是關鍵接收接收程序和事件:

        (1) 連同主啟動信息一起發送 (S ) 它來自主機端,有一個起始信號, 和它有任何關系。 EV 5 ,并會 SR1 寄存器 S B 1 表示已發送初始信號;

        (2) 傳送裝置的地址 等待反應信號 如果機器響應 就會出事 EV 6 SR1 寄存器 ADD R 位被 1 ,表示地址已經發送。

        (3) 在從服務器獲取數據到地址后,您開始向主機端發送數據。當主機獲得數據時,它會創建數據。 EV 7 事件 , SR1 寄存器 RXNE 1 表示接收數據登記冊不是空的,當我們閱讀登記冊時,我們可以將數據登記冊清空,以便接收下一個數據。 I2C 發送應答信 (ACK ) 或非應答信 (NACK ) 重復前述接收數據的步驟,如果沒有收到答復,則停止傳送;

        (4) 當發出無響應信號時,將創建停止信。 (P ) ,結束傳輸。

        在發送和接收過程中發生了一些事件,這些事件不僅標志著我們以前討論過的立場,而且還可能同時標出立場,例如東道國,在閱讀之后,標記必須消除,這更加困難。 STM32 標準圖書館方法立即檢測這些事件的綜合指標,減少方案擬訂的復雜性。

        你可以依靠我 如果你想加入一組學生 學習獨奏機器編程。 我要入 如果你喜歡和我們一起長大 你可以多留意我們一點

        本文由 在線網速測試 整理編輯,轉載請注明出處,原文鏈接:http://www.iamthepowdergroup.com/news/25457.html。

            熱門文章

            文章分類

        中医馆异性私密推油按摩电影
      1. <menu id="uc00s"><tt id="uc00s"></tt></menu>