IIC協議學習總結(HAL庫編程)


一、概述

I2C(Inter-Integrated Circuit BUS) 集成電路總線,該總線由NXP(原PHILIPS)公司設計,多用於主控制器和從器件間的主從通信,在小數據量場合使用,傳輸距離短,任意時刻只能有一個主機等特性。

I2C總線有兩條線,分別是數據線SDA,時鍾線SCL。I2C的開始、數據傳輸、結束和應答都是用SDA和SCL的高低電平來實現,即時序。

二、I2C協議時序

I2C時序如下:

 

1、開始信號(發送方)

I2C的數據傳輸開始信號是  SCL=1  SDA下降沿  ,完成開始信號后的狀態應該是 SCL=1  SDA=0 。

2、數據傳輸(發送方)

I2C數據傳輸時,SDA數據線只能在SCL=0時產生變化,SCL=1時發送該位數據(實際上是上升沿期間發送數據)。

3、應答信號(接收方)

接收方接受完8位數據后,可以產生應答信號,也可以不產生應答信號。先拉低SCL=0;若產生應答信號,則SDA=0,若不產生應答信號,則SDA=1;使SCL=1。

4、結束信號(發送方)

使SCL=1  SDA上升沿,完成結束信號。

三、代碼實現

寫了一個小時忘保存了T^T,還是直接看源代碼吧...


免責聲明!

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



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