sht20是個溫濕度感測器,使用i2c通訊
下面的i2c程式需要換成你們自己的i2c程式
softreset函式:硬體初始化
set_resolution函式:設定解析度
readsht20函式:開始測量
在main.c主函式裡面這樣呼叫
if(softreset() == 0)
while(1)
sht20.c
#include "sht20.h"
#include "hardiic.h"
#include "delay.h"
#include "usart.h"
#define sht20addr 0x80
char softreset(void)
char set_resolution(void)
float readsht20(char whatdo)
delay_ms(20);
iic_start();
iic_send_byte(sht20addr&0xfe);
if(iic_wait_ack() == 1)return 0;
iic_send_byte(whatdo);
if(iic_wait_ack() == 1)return 0;
dowhile(iic_wait_ack() != 0);
msb = iic_read_byte(1);
lsb = iic_read_byte(1);
iic_read_byte(0);
iic_stop();
lsb &= 0xfc;
temp = msb*256 + lsb;
delay_ms(20);
if (whatdo==((char)0xf5))else
}
sht20.h
#ifndef __sht20_h
#define __sht20_h
#include "sys.h"
char softreset(void);
char set_resolution(void);
float readsht20(char whatdo);
#endif
如果遇到什麼問題可以來問我我的b站 STM32F0使用LL庫實現SHT70通訊
在本次專案中,限於空間要求我們選用了stm32f030f4作為控制晶元。這款 mcu不但封裝緊湊,而且自帶的 flash 空間也非常有限,所以我們選擇了 ll庫實現。本篇我們將基於 ll庫採用模擬 i2c介面的方式實現溫濕度採集。1 sht70 簡述sht70是一款集溫濕度測量於一體的感測器,現在對...
STM32F407標準庫學習筆記 EXTI機制
如上圖所示,紅色為自引腳傳入的硬體電平訊號,綠色為暫存器傳來的軟體電平訊號 兩者皆為 能夠觸發 中斷 事件 的訊號,交匯於或門,兩者都可以單獨向後面發出訊號。即訊號 有軟 硬兩種。藍色線路 意為 將 或門傳出的訊號 視為中斷訊號,借助兩個 且門 和兩組對應的 遮蔽暫存器的 輸出訊號,實現藍色通路,黃...
STM32F407標準庫學習筆記 SYSTICK
systick定時器與核心緊密相連,請參考arm公司的手冊,他的中斷使能在自己的模組中,中斷優先順序和標誌位在scb中。typedef struct systick type 控制及狀態暫存器 計數標誌 時鐘源 異常 中斷 使能 計時器使能 開始 重裝載數值暫存器 倒計時起始值,24位有效,因為是減...