AHT10 溫濕度感測器

2021-10-19 12:38:17 字數 2921 閱讀 4305

aht10 標頭檔案

#ifndef _i2c_ath10_h_

#define _i2c_ath10_h_

#include

"c_types.h"

void

delayms

(u32 ms)

;void

aht10init()

;void

aht10_rst()

;unsigned

char

aht10_status()

;unsigned

char

aht10_calen()

;void

ath10_init()

;void

aht10_mea()

;void

aht10_read_data()

;#endif

aht10 c檔案

#include

"driver/i2c_master.h"

#include

"osapi.h"

#include

"c_types.h"

#include

"gpio.h"

#define aht10addwr 0x70

//aht10寫資料位址

#define aht10addrd 0x71

//aht10讀資料位址

void

delayms

(u32 ms)

}void

aht10init()

//aht10初始化

i2c_master_stop()

;delayms

(400);

}void

aht10_rst()

//軟復位

unsigned

char

aht10_status()

//讀取aht10狀態暫存器

unsigned

char

aht10_calen()

//判斷aht10校準使能

void

ath10_init()

}}else

}void

aht10_mea()

//觸發測量

i2c_master_stop()

;}void

aht10_read_data()

//接收濕度溫度資料

}i2c_master_start()

;i2c_master_writebyte

(aht10addrd);if

(!i2c_master_checkack()

) byte_1th =

i2c_master_readbyte()

;//狀態資料

i2c_master_send_ack()

;//應答

delayms(10

);byte_2th =

i2c_master_readbyte()

;//濕度資料

i2c_master_send_ack()

;delayms(10

);byte_3th =

i2c_master_readbyte()

;//濕度資料

i2c_master_send_ack()

;delayms(10

);byte_4th =

i2c_master_readbyte()

;//高4位為濕度 低4位為溫度

i2c_master_send_ack()

;delayms(10

);byte_5th =

i2c_master_readbyte()

;//溫度資料

i2c_master_send_ack()

;delayms(10

);byte_6th =

i2c_master_readbyte()

;//溫度資料

i2c_master_send_nack()

;i2c_master_stop()

; retudata =0;

//原始濕度資料合成

retudata =

(retudata | byte_2th)

<<8;

retudata =

(retudata | byte_3th)

<<8;

retudata = retudata | byte_4th;

retudata = retudata >>4;

ct[0]

= retudata;

retudata =0;

//原始溫度資料合成

retudata =

(retudata | byte_4th)

<<8;

retudata =

(retudata | byte_5th)

<<8;

retudata = retudata | byte_6th;

retudata = retudata &

0xfffff

; ct[1]

= retudata;

delayms(10

);rh =

(ct[0]

*1000

/1024

/1024);

temp =

(ct[1]

*200*10

/1024

/1024

-500);

//計算溫度

os_printf

("temp: %d.%d℃ rh: %d.%d%\n"

, temp /

10, temp %

10, rh /

10, rh %10)

;}

AHT10溫濕度感測器讀取例程 51微控制器

aht10溫濕度感測器讀取例程 51微控制器 所需材料 名稱 個數aht10溫濕度感測器 151微控制器 1連線線纜 若干概述 aht10溫濕度感測器是以i2c為介面傳送資料的器件,所以我們編寫程式時是以i2c協議為主,這裡我們使用軟體模擬的方法來實現i2c通訊。器件簡介 aht10 配有乙個全新設...

溫濕度感測器採集

軟體 keil firetool助手 硬體 stm32核心板,溫濕度感測器,st link燒錄器,ttl轉usb模組 首先保證程式編譯通過,電腦連線stm32核心板 核心板連線溫濕度感測器 st link燒錄器 ttl轉usb模組 預設電腦已安裝st link驅動 設定keil相關引數,參考 最後燒...

溫濕度感測器採集

硬體i2c 對應晶元上的i2c外設,有相應的i2c驅動電路,其所使用的i2c管腳也是專用的,因而效率要遠高於軟體模擬的i2c 一般也較為穩定,但是程式較為繁瑣。硬體i2c是直接呼叫內部暫存器進行配置 而軟體i2c是沒有暫存器這個概念的。軟體i2c 一般是使用gpio管腳,用軟體控制scl,sda線輸...