STM32F407 I2C 個人筆記


源代碼;https://github.com/YuQiao0303/STM32F407-Examples/tree/master/24.IIC

概述

  • I2C (IIC, Inter-Integrated Circuit),兩線式串行總線,
  • 用於連接微控制器及其外圍設備。
  • 它是由數據線SDA和時鍾SCL構成的串行總線
  • 在CPU與被控IC之間、IC與IC之間進行雙向傳送
  • IIC是半雙工通信方式

協議

①空閑狀態
②開始信號
③停止信號

④應答信號

  • 發送器每發送一個字節(8位)
  • 接收器在第九個時鍾脈沖前,將SDA拉低,
  • 並在該時鍾的高電平期間保持穩定低電平
  • 這就是一個有效應答位ACK,表示該字節接收成功
  • 否則如果應答信號是低電平,則為非應答位(NACK),表示該字節沒有接收成功

⑤數據的有效性

時鍾信號為高電平期間,數據線上的數據必須保持穩定,只有在時鍾線上的信號為低電平期間,數據線上的高電平或低電平狀態才允許變化。

即:數據在SCL的上升沿到來之前就需准備好。並在在下降沿到來之前必須穩定。

⑥數據傳輸

  • 在I2C總線上傳送的每一位數據都有一個時鍾脈沖相對應(或同步控制),
  • 即在SCL串行時鍾的配合下,在SDA上逐位地串行傳送每一位數據。
  • 數據位的傳輸是邊沿觸發。

EEPROM(24C02)

本次實驗,利用I2C通信協議,將數據寫入24C02存儲芯片。

芯片概述

芯片讀寫時的地址(device address)

芯片時序圖



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM