日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SHT30温湿度传感器驱动设计分析及代码实现

發布時間:2025/4/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SHT30温湿度传感器驱动设计分析及代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 SHT30溫濕度傳感器簡單測試
    • 1.1 SHT30硬件設計事需要注意的地方
    • 1.2 SHT30相關知識
    • 1.3 SHT30讀取溫度的簡單測試
  • 2 SHT30完善的驅動設計
    • 2.1 設計思路
    • 2.2 代碼實現

首先來看一下SHT34驅動實現的思路:

1 SHT30溫濕度傳感器簡單測試

1.1 SHT30硬件設計事需要注意的地方

一般i2c引腳的上拉電阻設計為4.7K,SHT30建議上拉電阻為10K,需要注意。


上圖中板子上的兩個4.7K的電阻應取下。

1.2 SHT30相關知識

SHT30的設備地址:

SHT30支持的模式:

SHT30讀取溫濕度:

1.3 SHT30讀取溫度的簡單測試

測試代碼比較簡單,如下:

#include "main.h" #include "i2c.h" #include "app_debug.h"#define SHT30_ADD (0X44<<1) #define CMD_MEAS_CLOCKSTR_H 0x2C06 // measurement: clock stretching, high repeatability #define CMD_MEAS_CLOCKSTR_M 0x2C0D // measurement: clock stretching, medium repeatability #define CMD_MEAS_CLOCKSTR_L 0x2C10 // measurement: clock stretching, low repeatability #define CMD_SOFT_RESET 0X30A2 // software resetvoid sht30_read() {uint8_t buf[6];uint16_t temp_s;float temp;HAL_I2C_Mem_Read(&hi2c1,SHT30_ADD,CMD_MEAS_CLOCKSTR_H,I2C_MEMADD_SIZE_16BIT, buf, 6, 0xffffffff);temp_s=(buf[0]<<8)+buf[1];temp=(float)175*temp_s/65535-45;DEBUG("temp is %f",temp); }

2 SHT30完善的驅動設計

2.1 設計思路

上面我們使用的是阻塞性讀取方式,這在實際工程中顯然是不太能夠接受的:

下面我們看下通過中斷的方式如何讀取溫濕度的數據:

2.2 代碼實現

drv_sht30.h:

#ifndef __DRV_SHT30_H #define __DRV_SHT30_H#include <stdbool.h>bool sht30_init(void); bool sht30_get_temp_humi(float *p_temp,float *p_humi); void sht30_i2c_handler(void);#endif

drv_sht30.c:

#include <stdbool.h> #include "main.h" #include "i2c.h" #include "app_debug.h"#include "FreeRTOS.h" #include "semphr.h"#define SHT30_ADD (0X44<<1) #define CMD_MEAS_CLOCKSTR_H 0x2C06 // measurement: clock stretching, high repeatability #define CMD_MEAS_CLOCKSTR_M 0x2C0D // measurement: clock stretching, medium repeatability #define CMD_MEAS_CLOCKSTR_L 0x2C10 // measurement: clock stretching, low repeatability #define CMD_SOFT_RESET 0X30A2 // software resetSemaphoreHandle_t sem_sht30; bool is_inited=false;void sht30_read() {uint8_t buf[6];uint16_t temp_s;float temp;HAL_I2C_Mem_Read(&hi2c1,SHT30_ADD,CMD_MEAS_CLOCKSTR_H,I2C_MEMADD_SIZE_16BIT, buf, 6, 0xffffffff);temp_s=(buf[0]<<8)+buf[1];temp=(float)175*temp_s/65535-45;DEBUG("temp is %f",temp); }static bool sht30_reset() {uint8_t cmd[2];cmd[0]=CMD_SOFT_RESET>>8;cmd[1]=CMD_SOFT_RESET&0xff;if(HAL_I2C_Master_Transmit(&hi2c1,SHT30_ADD,cmd,2,0xFFFFFFFF)!=HAL_OK){return false;}return true; }bool sht30_init(void) {sem_sht30=xSemaphoreCreateBinary();xSemaphoreTake(sem_sht30,0);if(sht30_reset()==false)return false;vTaskDelay(10);is_inited=true;return true; } bool sht30_get_temp_humi(float *p_temp,float *p_humi) {uint8_t buf[6];uint16_t temp_s,humi_s;float temp,humi;if(is_inited==false)return false;if(HAL_I2C_Mem_Read_IT(&hi2c1,SHT30_ADD,CMD_MEAS_CLOCKSTR_H,I2C_MEMADD_SIZE_16BIT, buf, 6)!=HAL_OK){return false;}if(xSemaphoreTake(sem_sht30,1000)==pdFALSE)return false;temp_s=(buf[0]<<8)+buf[1];temp=(float)175*temp_s/65535-45;*p_temp=temp;humi_s=(buf[3]<<8)+buf[4];humi=(float)humi_s*100/65535;*p_humi=humi;return true; }void sht30_i2c_handler(void) {BaseType_t xHigherPriorityTaskWoken = pdFALSE;if(is_inited==false)return ;xSemaphoreGiveFromISR( sem_sht30, &xHigherPriorityTaskWoken );portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); }

stm32l0xx_it.c中需要加入如下函數:

void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) {if(hi2c==&hi2c1){extern void sht30_i2c_handler(void);sht30_i2c_handler();} }

總結

以上是生活随笔為你收集整理的SHT30温湿度传感器驱动设计分析及代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 51精品国自产在线 | 日日操影院 | 波多野结衣高清视频 | 欧美久久精品一级黑人c片 1000部多毛熟女毛茸茸 | av片免费播放 | 伊人激情视频 | av手机免费在线观看 | 日本国产亚洲 | 欧美熟妇毛茸茸 | 久久精品www人人爽人人 | 18被视频免费观看视频 | 国产偷人妻精品一区二区在线 | 午夜美女视频 | 亚洲AV午夜精品 | 日本视频色 | 国产伦人伦偷精品视频 | 男女超爽视频免费播放 | 九九黄色大片 | 国产精成人 | 国产乱偷| 视频在线观看 | 国产精品久久久久三级无码 | 亚欧洲乱码视频 | 依人综合 | 欧美影视一区二区三区 | 午夜精品视频在线观看 | www欧美在线| 奇米精品一区二区三区在线观看 | 中文字幕一区二区在线观看 | 中文字幕亚洲欧美日韩 | av成人在线播放 | 超能一家人电影免费喜剧在线观看 | 日本色站 | 高清无打码 | 性一交一乱一伧国产女士spa | 欧美xxxx吸乳 | 日韩精品一线二线三线 | 国产精品久久久久久久久久久不卡 | 国内自拍视频在线播放 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 男女无遮挡网站 | 国产一二三 | 91免费观看入口 | 久久久久久国产精品一区 | 欧美最黄视频 | 亚洲一级黄色大片 | 欧美色涩在线第一页 | 一区二区三区四区精品 | 美女操操操 | 亚洲日本成人 | 日韩久久精品 | 国产成人在线视频免费观看 | 亚洲精品久久久中文字幕痴女 | 亚洲精品国产精品乱码视色 | 香蕉久久影院 | 天堂资源在线 | 天海翼av在线播放 | 少妇无码吹潮 | 色视频在线免费观看 | 在线能看的av | www.狠狠艹 | 成人在线91| 国产成人av免费观看 | 午夜影院在线 | 亚洲国产一区二区在线观看 | 亚洲91久久| 国产精品视频自拍 | 中文字幕一区二区三区四区免费看 | 久久精品国产精品亚洲色婷婷 | 欧美天天视频 | 裸体裸乳免费看 | 久久精品人妻一区二区三区 | 欧美日韩在线视频观看 | 欧美一区二三区 | 神马午夜不卡 | 黄色大片免费观看 | 99热| 黄色一级片在线播放 | 亚洲国产欧美在线 | 国产黄色在线播放 | wwwwxxxx国产 | 冲田杏梨一区二区三区 | 成人xxx视频 | 日日操狠狠操 | 国产精品毛片久久久久久久 | 亚洲h网站 | 成人不卡在线 | 免费色av| 亚洲成人va | 欧美特一级片 | 午夜影院福利社 | 最近国语视频在线观看免费播放 | 国模私拍av| 久热在线视频 | 日韩欧美一区二区三区视频 | 国产日韩欧美精品在线观看 | 娇妻玩4p被三个男人伺候电影 | 色午夜av| 久久精品韩国 |