目的
驅(qū)動hs3003溫濕度計
步驟
- 在原來墨水屏的工程基礎(chǔ)上添加HS3003的驅(qū)動。
- 新建hs3003.c/hs3003.h,并打hs3003.c加入工程。


- 周轉(zhuǎn)了半天,還得改回來用軟件i2c來驅(qū)動。hs3003.c驅(qū)動程序如下:
#include "hs3003.h"
#include "software_i2c.h"
#include "log.h"
#define I2CT_FLAG_TIMEOUT ((uint32_t)0x1000)
#define I2CT_LONG_TIMEOUT ((uint32_t)(20 * I2CT_FLAG_TIMEOUT))
#define SI2C_SDA_GPIOx GPIOB
#define SI2C_SCL_GPIOx GPIOB
#define SI2C_SDA_Pin GPIO_PIN_8
#define SI2C_SCL_Pin GPIO_PIN_9
static SI2C_HANDLE SI2C_handle;
void i2c_master_init(){
log_info("\\n this is a software i2c master demo\\r\\n");
if(SI2C_Init(&SI2C_handle,SI2C_SDA_GPIOx, SI2C_SCL_GPIOx, SI2C_SDA_Pin, SI2C_SCL_Pin, 5) == false)
{
log_info("software i2c init fail \\r\\n");
while(1);
}
}
uint32_t Humiture_HS3003_ReadData_Raw(void )
{
uint8_t rx_buf[4] = {0};
uint16_t humi, temp;
float tmp_f = 0.0;
float humi_f,temp_f;
SI2C_MasterWrite(&SI2C_handle,I2C_SLAVE_ADDR, NULL, 0);
//8bit->1.2ms
//10bit->2.72ms
//12bit->9.10ms
//14bit->33.90ms
Delay_ms(40);
__retry:
SI2C_MasterRead(&SI2C_handle, I2C_SLAVE_ADDR, rx_buf, 4);
// log_info("%x,%x,%x,%x\\n", rx_buf[0], rx_buf[1], rx_buf[2], rx_buf[3]);
// log_info("state:%x\\n", rx_buf[0] & RM_HS300X_MASK_STATUS_0XC0);
if ((rx_buf[0] & RM_HS300X_MASK_STATUS_0XC0) != RM_HS300X_DATA_STATUS_VALID)
{
Delay_ms(100);
goto __retry;
}
humi = (rx_buf[0] & RM_HS300X_MASK_HUMIDITY_UPPER_0X3F) << 8 | rx_buf[1];
temp = (rx_buf[2] << 8 | (rx_buf[3] & RM_HS300X_MASK_TEMPERATURE_LOWER_0XFC)) >> 2;
humi_f = (float)humi;
humi_f = (humi_f * RM_HS300X_CALC_HUMD_VALUE_100) / RM_HS300X_CALC_STATIC_VALUE;
temp_f = (float)temp;
temp_f = ((temp_f * RM_HS300X_CALC_TEMP_C_VALUE_165) / RM_HS300X_CALC_STATIC_VALUE) - RM_HS300X_CALC_TEMP_C_VALUE_40;
log_info("Temp:%d.%d ",(int)temp_f,(int)(temp_f*100)%100);
log_info("HUMI:%d.%d\\r\\n",(int)humi_f,(int)(humi_f*100)%100);
return 1;
}
bool Humiture_HS3003_init(void)
{
i2c_master_init();
}
- hs3003.h:
#ifndef __HS3003_H__
#define __HS3003_H__
#include "n32wb03x.h"
#define I2C_MASTER_ADDR 0x30
#define I2C_SLAVE_ADDR 0x44<<1
#define HS300X_HUMD_MULTY 0.00006163516
#define HS300X_TEMP_MULTY 0.00006163516
/* Definitions of Mask Data for A/D data */
#define RM_HS300X_MASK_HUMIDITY_UPPER_0X3F (0x3F)
#define RM_HS300X_MASK_TEMPERATURE_LOWER_0XFC (0xFC)
#define RM_HS300X_MASK_STATUS_0XC0 (0xC0)
/* Definitions for Status Bits of A/D Data */
#define RM_HS300X_DATA_STATUS_VALID (0x00) // Status-bit: Valid data
/* Definitions for Calculation */
#define RM_HS300X_CALC_STATIC_VALUE (16383.0F)
#define RM_HS300X_CALC_HUMD_VALUE_100 (100.0F)
#define RM_HS300X_CALC_TEMP_C_VALUE_165 (165.0F)
#define RM_HS300X_CALC_TEMP_C_VALUE_40 (40.0F)
#define RM_HS300X_CALC_DECIMAL_VALUE_100 (100.0F)
bool Humiture_HS3003_init(void);
uint32_t Humiture_HS3003_ReadData_Raw(void );
#endif
7、在主程序中調(diào)用一下:
#include "main.h"
#include "led.h"
#include "key.h"
#include "log.h"
#include "hs3003.h"
unsigned char BlackImage[4736];//Define canvas space
int main(void)
{
unsigned char fen_L,fen_H,miao_L,miao_H;
log_init();
Humiture_HS3003_init();
Humiture_HS3003_ReadData_Raw();
while (1)
{
Humiture_HS3003_ReadData_Raw();
Delay_ms(1000);
}
}
實驗效果

總結(jié)
不知道是不是硬件i2c的驅(qū)動是不是有問題,反正我的浪費了半天的時間,各種工具用上,最后還是得用軟件才搞定。
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
驅(qū)動
+關(guān)注
關(guān)注
12文章
1939瀏覽量
88399 -
THS3000
+關(guān)注
關(guān)注
0文章
3瀏覽量
6373
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
冷庫溫濕度監(jiān)控系統(tǒng)物聯(lián)網(wǎng)解決方案
冷庫作為生鮮食品、醫(yī)藥試劑、化工原料等物資的核心存儲載體,溫濕度的穩(wěn)定性直接決定物資品質(zhì)與安全。傳統(tǒng)冷庫溫濕度管理存在諸多痛點:人工巡檢效率低、誤差大,難以實現(xiàn) 24 小時全覆蓋監(jiān)測;溫濕度異常后
低功耗藍(lán)牙芯片N32WB031系列斷路器應(yīng)用
在智能化電氣設(shè)備快速發(fā)展的今天,斷路器已不再是簡單的電路保護(hù)裝置,而是集監(jiān)測、控制、交互于一體的智能節(jié)點。實現(xiàn)這一升級,離不開一顆高性能、高可靠性的核心芯片。國民技術(shù)推出的N功耗藍(lán)牙芯片N32
溫濕度傳感器HTU31D在溫濕度控器中的應(yīng)用優(yōu)勢
溫濕度控制器是一種用于監(jiān)測和調(diào)節(jié)環(huán)境溫度與濕度的設(shè)備,廣泛應(yīng)用于農(nóng)業(yè)、倉儲、工業(yè)生產(chǎn)、家庭等多個領(lǐng)域。其主要功能是維持特定環(huán)境條件,以確保產(chǎn)品質(zhì)量和舒適的居住環(huán)境。 溫濕度控制器的工作過程是傳感器
基于LORA無線通訊的祥控多點式煙葉溫濕度監(jiān)測系統(tǒng)
XKCON祥控多點式煙葉溫濕度監(jiān)測系統(tǒng)基于LORA無線通訊技術(shù),無需復(fù)雜的布線工作,縮短了工期,節(jié)省了成本;系統(tǒng)可以根據(jù)煙廠的實際布局和需求進(jìn)行靈活配置,實現(xiàn)對各單點無線溫濕度檢測桿測量信號的
常見的溫濕度傳感器類型?
溫濕度傳感器是一種用于測量環(huán)境溫度和濕度的設(shè)備,廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、氣象等領(lǐng)域。以下是幾種常見的溫濕度傳感器類型及其優(yōu)缺點:
電容式濕度傳感器
電容式
發(fā)表于 06-24 09:24
溫濕度變送器功能有哪些?一文詳細(xì)解析
對于很多行業(yè)來說,精確的測量以及控制溫度和濕度至關(guān)重要。想要達(dá)到這個目的,往往需要用到溫濕度變送器。那么,溫濕度變送器究竟有哪些功能呢?下面為大家詳細(xì)介紹。
一、精確測量溫濕度
發(fā)表于 06-03 10:56
智能倉儲:溫濕度監(jiān)控方案應(yīng)用
隨著倉儲環(huán)境要求提高,溫濕度監(jiān)控對保障貨物品質(zhì)至關(guān)重要。本文介紹一個工廠倉庫溫濕度監(jiān)控方案,利用溫濕度變送器、LoRa技術(shù)和智能監(jiān)測平臺,為倉庫業(yè)主提供高效、可靠的監(jiān)測解決方案。倉庫
LoRa無線技術(shù)的溫濕度監(jiān)測預(yù)警系統(tǒng)
LoRa無線技術(shù)的溫濕度監(jiān)測預(yù)警系統(tǒng)采用LoRa采集器和LoRa網(wǎng)關(guān)實現(xiàn)監(jiān)控區(qū)域內(nèi)的全覆蓋,同時在倉儲區(qū)各個數(shù)據(jù)采集節(jié)點安裝溫濕度傳感器,實
【RA-Eco-RA4M2開發(fā)板評測】RT-Thread上驅(qū)動I2C溫濕度傳感器
框架加進(jìn)來。
最后把溫濕度傳感器的組件包選上。
四、驅(qū)動
有了RT-Thread的sensor驅(qū)動框架和hs300x驅(qū)動組件包,對
發(fā)表于 05-08 22:42
【RA-Eco-RA4M2開發(fā)板評測】RA-Eco-RA4M2 溫濕度傳感器HS3003
傳感元件,其性能已經(jīng)大大提升甚至超出了前一代傳感器的可靠性水平,新一代溫濕度傳感器,經(jīng)過改進(jìn)使其在惡劣環(huán)境下的性能更穩(wěn)定。
2.2 HS3003采集溫濕度
溫度
發(fā)表于 05-03 22:57
溫濕度傳感器:核心原理與跨領(lǐng)域應(yīng)用解析
一、溫濕度傳感器的技術(shù)演進(jìn)與核心價值 溫濕度傳感器是一種通過物理或化學(xué)機(jī)制實時監(jiān)測環(huán)境溫濕度參數(shù)的電子設(shè)備。在物聯(lián)網(wǎng)(IoT)與智慧化轉(zhuǎn)型的浪潮中,其作為環(huán)境感知的 “神經(jīng)末梢”,已滲
制藥車間溫濕度數(shù)據(jù)采集監(jiān)控管理方案
在制藥生產(chǎn)過程中,溫濕度對藥品質(zhì)量起著關(guān)鍵作用。不穩(wěn)定的溫濕度環(huán)境可能導(dǎo)致藥品原料變質(zhì)、藥品制劑的穩(wěn)定性下降,甚至影響藥品的療效和安全性。因此,構(gòu)建一套精準(zhǔn)、可靠的溫濕度數(shù)據(jù)采集監(jiān)控管理方案,對制藥
如何操作電子溫濕度記錄儀
電子溫濕度記錄儀是一種常用的記錄儀產(chǎn)品類型,選用進(jìn)口傳感器、進(jìn)口高能鋰電池供電,采用低功耗技術(shù)設(shè)計,可以外接電源供電,體積小巧,整機(jī)功耗小,精度高。被廣泛用于工業(yè)、環(huán)保、衛(wèi)生防疫、倉儲運輸、博物館等
通過手機(jī)端遠(yuǎn)程監(jiān)控冷庫溫濕度并進(jìn)行遠(yuǎn)程控制
與控制冷庫溫濕度技術(shù)的核心在于物聯(lián)網(wǎng)(IoT)技術(shù)的應(yīng)用。通過在冷庫中部署溫濕度傳感器、控制器等智能設(shè)備,這些設(shè)備能夠?qū)崟r采集冷庫的
工廠溫濕度監(jiān)控系統(tǒng)
在現(xiàn)代化工業(yè)生產(chǎn)環(huán)境中,溫濕度控制是確保產(chǎn)品質(zhì)量、生產(chǎn)效率和員工健康的關(guān)鍵因素之一。隨著科技的進(jìn)步,工廠溫濕度監(jiān)控系統(tǒng)應(yīng)運而生,通過集成傳感器技術(shù)、數(shù)據(jù)處理與通信技術(shù),對工廠內(nèi)部環(huán)境參
國民技術(shù)N32WB031驅(qū)動HS3003采集溫濕度
評論