SCL 時鐘同步線,由主機發出。
當SCL為高電平(邏輯1)時是工作狀態,低電平(邏輯0)時是休息狀態。SCL可以控制通信的速度。
SDA 數據收發線?
應答位:前八個工作區間是一個字節,在SCL的第九個工作區間從機將發送一個電平(因為SDA是接了一個2.2k的上拉電阻,默認是高電平)。主機讀取,若是高電平表示數據錯誤沒有應答,低電平時正常。當主機發給從機時,從機應答,從機發給主機時主機應答。也就是誰接受誰應答。
起始位:SDA 從1變成0
結束位:SDA 從0變成1
讀數據與寫數據
如何判斷讀還是寫
讀寫標志位:第一個數據最右邊一位(最低一位)用來判斷是讀還是寫。邏輯1是讀,邏輯0是寫。
器件地址:第一個數據左邊7位二進制數就是器件地址
指針功能(子地址,寄存器地址)
發送的第二個數據是指針,確定要讀還是寫哪一個寄存器(如第四個寄存器就是2進制的4)。
寫數據時只需寫完指針發送數據即可,讀數據比較復雜,先要寫數據,設置了指針,然后重新發送起始位,再進行寫數據。
指針寫過一次就會被保持,下一次在讀寫時,可以不使用指針。斷電或復位會丟失。