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...