色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

國民技術N32WB031驅動HS3003采集溫濕度

華仔的編程隨筆 ? 來源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-05-02 17:28 ? 次閱讀

目的

驅動hs3003溫濕度計

步驟

  1. 在原來墨水屏的工程基礎上添加HS3003的驅動。
  2. 新建hs3003.c/hs3003.h,并打hs3003.c加入工程。

fd8cc1a28c5d67ef66e037e3c21171e759f96974db736e7e671030a56d06ba5c.png

  1. 我償試用硬件驅動i2c,但scl即使使用了上位電阻,也不起振,用邏輯分析儀檢測如下圖:

3b7bd1190103d79d558d5bcbf321b5cea8bc24bce67a64d53cdbaaa3fd3008b5.png

  1. 周轉了半天,還得改回來用軟件i2c來驅動。hs3003.c驅動程序如下:
#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();

}
  1. 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、在主程序中調用一下:

#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);

}

}

實驗效果

152488a4470e169d54322890c576d2a0cb51d8d89a83d67ea4982d2d3f0d9ac8.png

總結

不知道是不是硬件i2c的驅動是不是有問題,反正我的浪費了半天的時間,各種工具用上,最后還是得用軟件才搞定。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 驅動
    +關注

    關注

    12

    文章

    1848

    瀏覽量

    85471
  • THS3000
    +關注

    關注

    0

    文章

    3

    瀏覽量

    6283
收藏 人收藏

    評論

    相關推薦

    遠程溫濕度實時監測系統應用方案

    通信、云計算、大數據分析等技術。傳感器作為系統的“眼睛”,負責實時采集環境中的溫濕度數據。通過Wi-Fi、藍牙、LoRa、NB-IoT等通訊方式,將傳感器采集的數據傳輸至云端服務器。云
    的頭像 發表于 01-02 17:03 ?154次閱讀

    LORA無線溫濕度監測系統

    倉儲、農業、機房等多種應用場景,提供高效、可靠的解決方案。 部分組成 LORA溫濕度傳感器:作為系統的前端采集設備,實時捕捉環境中的溫濕度數據。LORA溫濕度傳感器的傳輸距離遠,視距可
    的頭像 發表于 11-07 16:57 ?416次閱讀

    Arduino Nano 和 DHT11 實現 LabVIEW 溫濕度采集

    Arduino Nano 和 DHT11 實現 LabVIEW 溫濕度采集
    的頭像 發表于 10-08 11:46 ?686次閱讀
    Arduino Nano 和 DHT11 實現 LabVIEW <b class='flag-5'>溫濕度</b><b class='flag-5'>采集</b>

    溫濕度監測解決方案

    。對于維護環境穩定、保障生產安全、提升生活質量具有重要意義。 溫濕度監測解決方案,融入物聯網、無線通訊等技術,通過溫濕度傳感器、智能采集器等感知設備,實時
    的頭像 發表于 09-04 17:16 ?377次閱讀

    溫濕度監測系統應用

    、可靠的溫濕度監測系統顯得尤為重要。 溫濕度監測系統,通過溫度傳感器、智能控制終端等硬件設備,與管理云平臺組成高精度傳感器網絡,在線采集室內溫濕度變化情況,聯動空調等設備,以數字形式打
    的頭像 發表于 07-26 16:15 ?458次閱讀

    藥品倉庫溫濕度監控系統

    和有效使用具有重要意義。 藥品倉庫溫濕度監控系統,結合物聯網、無線通訊等技術,主要由傳感器、數據采集器、傳輸設備、管理云平臺等組成。針對藥品倉庫的溫濕度進行實時監控,及時發現并調整不利
    的頭像 發表于 07-26 10:12 ?382次閱讀

    庫房溫濕度自動監測系統

    倉儲、庫房在管理上,環境控制都是重中之重。庫房溫濕度自動監測系統作為一種更為便捷的解決方案,已經得到廣泛的應用。 庫房溫濕度自動監測系統通過集成傳感器、數據采集器、傳輸設備和管理平臺等硬件設備,實現
    的頭像 發表于 07-09 18:00 ?756次閱讀

    糧倉環境溫濕度監測系統方案

    安全、提高糧食儲存質量具有重要意義。 糧倉環境溫濕度監測系統,由傳感器、數據采集器、傳輸設備、監控平臺等組成。采集器負責實時采集糧倉環境的溫濕度
    的頭像 發表于 07-05 16:29 ?463次閱讀

    糧倉溫濕度監測解決方案

    溫濕度是影響糧食儲存品質的重要因素。過高的溫度會加速糧食的呼吸作用,導致水分散失和品質下降。因此,糧倉的溫濕度管理,成為了確保糧食儲存安全和質量穩定的關鍵因素。方便及時發現糧倉的發熱點,及時減少糧食
    的頭像 發表于 07-04 16:37 ?383次閱讀

    想要準確地測量環境溫濕度?溫濕度傳感器是關鍵!

    ? 溫濕度是生產生活中最重要的環境指標之一,不僅人需要在適宜的溫濕度條件下保持良好的精神狀態和敏捷的思維,食品、藥品、各種儀器設備等都對環境溫濕度有特殊的要求。基于對環境溫濕度的要求,
    的頭像 發表于 07-04 08:48 ?622次閱讀

    無線溫濕度監控系統

    無線溫濕度監控系統,作為現代環境監測技術的杰出代表,已經廣泛應用于各個行業和領域。利用無線通信技術,實現對環境溫濕度的實時、遠程監控,從而保障了各種設備和物品的安全運行和保存。 無線
    的頭像 發表于 05-30 16:43 ?804次閱讀

    基于國民技術N32WB031的Mesh燈控解決方案

    聯網應用場景。此外Mesh采用的信息加密技術保證了物聯網傳輸信息的安全性。Mesh燈控解決方案采用國民技術新一代高性能、超低功耗的藍牙5.1芯片N32WB031
    的頭像 發表于 05-24 08:25 ?1692次閱讀
    基于<b class='flag-5'>國民</b><b class='flag-5'>技術</b><b class='flag-5'>N32WB031</b>的Mesh燈控解決方案

    基于國民技術N32WB031的藍牙語音遙控器解決方案

    N32WB031系列藍牙芯片是國民技術新一代高性能、超低功耗的藍牙5.1芯片,具有豐富的外設接口,在工業/能源、金融/消費、醫療、家電及汽車等行業領域用途非常廣泛。本文介紹的藍牙語音遙控器方案采用
    的頭像 發表于 03-08 10:00 ?2213次閱讀
    基于<b class='flag-5'>國民</b><b class='flag-5'>技術</b><b class='flag-5'>N32WB031</b>的藍牙語音遙控器解決方案

    溫濕度數據采集遠程監控系統解決方案

    遠程監控系統,為人們提供了一種高效、便捷的溫濕度監控方式。 該系統通過采集溫濕度傳感器中的溫濕度數據,并通過無線通訊技術將數據傳輸至云端服務
    的頭像 發表于 02-28 10:55 ?546次閱讀

    溫濕度傳感器工作原理 溫濕度傳感器的接線方法

    溫濕度傳感器是一種用于測量環境溫度和相對濕度的裝置。它通常用于工業、農業、氣象、室內空調等領域。本文將詳細介紹溫濕度傳感器的工作原理和接線方法。 一、溫濕度傳感器的工作原理
    的頭像 發表于 02-14 18:00 ?9995次閱讀
    主站蜘蛛池模板: 日韩人妻双飞无码精品久久| 超碰最新网站| 受被三个攻各种道具PLAY| 亚洲欧洲日产国产 最新| 精品久久久久中文字幕加勒比东京热 | 亚洲成人免费| 美女内射视频WWW网站午夜| 成人国产免费| 亚洲最大成人| 漂亮的av女演员| 国内精品久久久久影院老司| 91嫩草视频在线观看| 乌克兰14一18处交见血| 久久亚洲国产中文字幕| 国产高清视频a在线大全| 丝袜美女被艹| 老王午夜69精品影院| 国产精品2020观看久久| 中文字幕中文字幕永久免费| 手机毛片在线| 男女交性视频无遮挡全过程 | 草神被爆漫画羞羞漫画| 亚洲欧美国产综合在线| 青柠在线观看视频在线高清| 精品久久久爽爽久久久AV| jjzzz日本| 视频一区在线免费观看| 狼好色有你好看| 国产午夜高潮熟女精品AV| 99热视频这里只有久久精品| 亚洲日本欧美产综合在线| 日本三级按摩推拿按摩| 啦啦啦 中文 中国 免费 高清在线| 国产精品无码人妻在线| a视频免费在线| 中文在线日韩亚洲制服| 小p孩玩成年女性啪啪资源| 欧美白人极品性喷潮| xxnx日本| 纵欲(高H)| 一受多攻高h|