SHT20 IIC匯流排驅動概述

2021-10-02 13:41:41 字數 1063 閱讀 9929

sht20溫濕度感測器使用iic匯流排的驅動方式,以下資料參考sht20 datasheet總結

1、iic匯流排

start訊號

iic匯流排的起始訊號以sda由高電平變為低電平,等待5us以上,再由scl從高電平變低電平,發出起始訊號,圖示如下所示:

注意:兩根線由高變低的間隔時間大於4.7us,建議延時15us

example:

void iic_start(void)       

stop訊號

iic匯流排的停止訊號以scl訊號線從低電平變為高電平,等待0.6us以上sda訊號線再從低電平變高電平,圖示如下所示:

注意:其中間隔時間大於0.6us,建議15us

example:

void iic_stop(void)   

ack 訊號

ack訊號是在時鐘線的下降沿拉低資料線,**如下:

cpp void iic_ack(void)noack 訊號

和ack訊號相反,noack是在時鐘的下降沿拉高資料線,**如下:

cpp void iic_noack(void) //6. 非應答訊號傳送資料和接受資料

通常傳送資料還是接受資料是由 iic addr + write/read byte決定的,所以我們在讀取資料或者傳送資料之前一定會傳送乙個 addr + w/r,,在no hold master模式下面,mcu具有主導地位,即時鐘訊號線由mcu掌握,在發出start訊號之後,開始接受或者傳送資料,通常是在時鐘的下降沿進行資料的收發操作。收發結束之後需要等待ack或者nack,由傳送或者接受的資料決定。如下圖所示:

參考**實現

bool iic_sendbyte(unsigned char dat)   //3.寫資料

{ unsigned char i;

bool ack;

for (i = 0; i < 8; i++)

{if((dat<

SHT20 IIC 暫存器概述

注 部分內容來自sht20晶元手冊翻譯 1 暫存器列表 名稱指令 bin 暫存器內容 hex 主機模式 trigger t measurement hold master 1110 0011 0xe3 主機模式 trigger rh measurement hold master 1110 0101...

SHT20的使用問題

1.sht20 溫濕度感測器的選擇 初步選擇的是ds18b20 和 dh11 但由於artik平台提供的延遲函式usleep量級在10ms左右,時序不正確,無法正常單匯流排驅動。所以選用i2c驅動的sht20。問題分析1 usleep函式的延時。因為tizen 系統的程序切換粒度最小是10ms左右,...

STM32F405 標準庫 SHT20溫濕度感測器

sht20是個溫濕度感測器,使用i2c通訊 下面的i2c程式需要換成你們自己的i2c程式 softreset函式 硬體初始化 set resolution函式 設定解析度 readsht20函式 開始測量 在main.c主函式裡面這樣呼叫 if softreset 0 while 1 sht20.c...