在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

CW32模塊使用 SHT30溫濕度傳感器

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2024-11-14 17:39 ? 次閱讀

一、模塊來源

模塊實物展示:

wKgZoWc1xV6AT2l4AAAbIG9cn7k189.jpg


資料下載鏈接:
https://pan.baidu.com/s/1kisMJspcV6Qdr1ye9ElOlQ

二、規格參數

工作電壓:2.4-5.5V

工作電流:0.2~1500uA

溫度測量范圍:-40~125℃

溫度測量精度:±0.3℃

濕度測量范圍:0~100%RH

濕度測量精度:±2%RH

輸出方式: IIC

管腳數量:4 Pin

以上信息見廠家資料文件

三、移植過程

我們的目標是將例程移植至CW32F030C8T6開發板上【測量溫濕度的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。

3.1查看資料

SHT30是采用的IIC通信,所以首先要了解IIC的地址與時序,再確定根據寄存器的設置。

模塊原理圖

wKgaoWc1xV6AZRZEAAA9qBWDPZ0830.jpg

SHT30地址

數據手冊上說明,當ADDR引腳接入VSS(接地)時,地址為0X44。而原理圖上已經通過R14這個下拉電阻接地。不過需要注意的是,實際地址為 0X44 左移一位,因需要空出最低位給讀寫位,所以實際的地址是 0X44 << 1。

wKgZoWc1xV6AU8wYAAAjnkQ0C5I296.jpg

測量模式

SHT30有兩種測量模式,分別是單次測量模式和周期測量模式。

在單次測量模式下,發出一個測量命令就觸發一次數據采集。每個數據都由一個16位的溫度值和一個16位的濕度值(按此順序)組成。在傳輸過程中,每個數據值后面總是跟著一個CRC校驗和。但是在該模式下又分有時鐘拉伸模式和時鐘不拉伸模式,具體情況見下圖。

wKgaoWc1xV-AOA0nAACL9L_NyJg086.jpg

并且在單次測量模式下,可以選擇不同的測量命令。它們在可重復性(低、中、高)和時鐘拉伸(啟用或禁用)方面有所不同。這里的可重復性設置影響測量持續時間,從而影響傳感器的總體能耗。

wKgZoWc1xV-AeL1oAAAz9vYNM_A156.jpg

在周期測量模式下,時鐘拉伸模式禁用,但是可以分為高中低的可重復性測量,測量周期為0.5、1、2、4、10(單位 次/秒)(這種模式下最快的測量速度是1秒10次)如果傳感器在一種工作模式下正在測量數據,此時要發送其他命令(推薦先發送一次中斷命令),讓傳感器停止當前的測量,進入單次測量模式,然后再發送命令。這里需要注意:如果測量頻率過高,會導致傳感器自熱。

wKgaoWc1xWCAQcnvAABKuMHJrY8259.jpg

設置好周期測量模式的測量周期和可重復性強度后,隨時可以進行測量讀取數據,需要發送一個讀取命令(0XE000)。一旦讀取時序結束之后,寄存器中的數值就會清零,如果這時再一次讀取數據將得到0。下一次測量結束后,寄存器的值就會重新寫入。

wKgZoWc1xWCAPGALAABEfKwSAXg309.jpg

3.2引腳選擇

wKgaoWc1xWGAfZWTAAGLUs1dnqg002.jpg

接線表

3.3移植至工程

工程模板參考入門手冊的工程模板

移植步驟中的導入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_sht30.c與bsp_sht30.h。這里不再過多講述,移植完成后面修改相關代碼。

在文件bsp_sht30.c中,編寫如下代碼。

/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "bsp_sht30.h" #include "stdio.h" double Temperature = 0.0, Humidity = 0.0; /****************************************************************** * 函 數 名 稱:SHT30_GPIO_Init * 函 數 說 明:SHT30的引腳初始化 * 函 數 形 參:無 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void SHT30_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結構體 RCC_SHT30_ENABLE(); // 使能GPIO時鐘 GPIO_InitStruct.Pins = GPIO_SCL|GPIO_SDA; // GPIO引腳 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 開漏輸出 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; // 輸出速度高 GPIO_Init(PORT_SHT30, &GPIO_InitStruct); // 初始化 } /****************************************************************** * 函 數 名 稱:IIC_Start * 函 數 說 明:IIC起始時序 * 函 數 形 參:無 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void IIC_Start(void) { SDA_OUT(); SCL(1); SDA(0); SDA(1); delay_us(5); SDA(0); delay_us(5); SCL(0); } /****************************************************************** * 函 數 名 稱:IIC_Stop * 函 數 說 明:IIC停止信號 * 函 數 形 參:無 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void IIC_Stop(void) { SDA_OUT(); SCL(0); SDA(0); SCL(1); delay_us(5); SDA(1); delay_us(5); } /****************************************************************** * 函 數 名 稱:IIC_Send_Ack * 函 數 說 明:主機發送應答或者非應答信號 * 函 數 形 參:0發送應答 1發送非應答 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void IIC_Send_Ack(unsigned char ack) { SDA_OUT(); SCL(0); SDA(0); delay_us(5); if(!ack) SDA(0); else SDA(1); SCL(1); delay_us(5); SCL(0); SDA(1); } /****************************************************************** * 函 數 名 稱:I2C_WaitAck * 函 數 說 明:等待從機應答 * 函 數 形 參:無 * 函 數 返 回:0有應答 1超時無應答 * 作 者:LC * 備 注:無 ******************************************************************/ unsigned char I2C_WaitAck(void) { char ack = 0; unsigned char ack_flag = 10; SCL(0); SDA(1); SDA_IN(); SCL(1); while( (SDA_GET()==1) && ( ack_flag ) ) { ack_flag--; delay_us(5); } if( ack_flag <= 0 ) { IIC_Stop(); return 1; } else { SCL(0); SDA_OUT(); } return ack; } /****************************************************************** * 函 數 名 稱:Send_Byte * 函 數 說 明:寫入一個字節 * 函 數 形 參:dat要寫人的數據 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void Send_Byte(u8 dat) { int i = 0; SDA_OUT(); SCL(0);//拉低時鐘開始數據傳輸 for( i = 0; i < 8; i++ ) { SDA( (dat & 0x80) >> 7 ); delay_us(1); SCL(1); delay_us(5); SCL(0); delay_us(5); dat> 8 ) ); //返回0為產生了應答,返回1說明通信失敗 if( I2C_WaitAck() == 1 )return 2; //發送命令的低8位 Send_Byte(dat & 0xff ); //返回0為產生了應答,返回1說明通信失敗 if( I2C_WaitAck() == 1 )return 3; // IIC_Stop(); return 0; } /****************************************************************** * 函 數 名 稱:crc8 * 函 數 說 明:CRC校驗 * 函 數 形 參:data要校驗的數據地址 len要校驗的長度 * 函 數 返 回:校驗后的值 * 作 者:LC * 備 注:無 ******************************************************************/ unsigned char crc8(const unsigned char *data, int len) { const unsigned char POLYNOMIAL = 0x31; unsigned char crc = 0xFF; int j, i; for (j=0; j> 8 )); if( I2C_WaitAck() == 1 )return 2; Send_Byte( dat & 0xff ); if( I2C_WaitAck() == 1 )return 3; //如不使用超時判斷,很容易數據錯亂 do { //超時判斷 i++; if( i > 20 ) return 4; delay_ms(2); IIC_Start(); Send_Byte((0X44

在文件bsp_sht30.h中,編寫如下代碼。

/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #ifndef _BSP_SHT30_H_ #define _BSP_SHT30_H_ #include "board.h" extern double Temperature, Humidity; #define u8 unsigned char //端口移植 #define RCC_SHT30_ENABLE() __RCC_GPIOB_CLK_ENABLE() #define PORT_SHT30 CW_GPIOB #define GPIO_SDA GPIO_PIN_8 #define GPIO_SCL GPIO_PIN_9 //SDA輸入模式 #define SDA_IN() { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pins = GPIO_SDA; GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_Init(PORT_SHT30, &GPIO_InitStruct); } //SDA輸出模式 #define SDA_OUT() { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pins = GPIO_SDA; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_Init(PORT_SHT30, &GPIO_InitStruct); } //獲取SDA引腳的電平變化 #define SDA_GET() GPIO_ReadPin(PORT_SHT30, GPIO_SDA) //SDA與SCL輸出 #define SDA(x) GPIO_WritePin(PORT_SHT30, GPIO_SDA, (x?GPIO_Pin_SET:GPIO_Pin_RESET ) ) #define SCL(x) GPIO_WritePin(PORT_SHT30, GPIO_SCL, (x?GPIO_Pin_SET:GPIO_Pin_RESET ) ) void SHT30_GPIO_Init(void); char SHT30_Read(uint16_t dat); #endif

四、移植驗證

在自己工程中的main主函數中,編寫如下。

/* * 立創開發板軟硬件資料與相關擴展板軟硬件資料官網全部開源 * 開發板官網:www.lckfb.com * 技術支持常駐論壇,任何技術問題歡迎隨時交流學習 * 立創論壇:https://oshwhub.com/forum * 關注bilibili賬號:【立創開發板】,掌握我們的最新動態! * 不靠賣板賺錢,以培養中國工程師為己任 * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "board.h" #include "stdio.h" #include "bsp_uart.h" #include "bsp_sht30.h" int32_t main(void) { board_init(); // 開發板初始化 uart1_init(115200); // 串口1波特率115200 SHT30_GPIO_Init(); printf("startrn"); while(1) { SHT30_Read(0xe000); printf("Temp = %.2frn",Temperature); printf("Humi = %.2frn",Humidity); printf("rn"); delay_ms(1000); } }

移植現象:每隔1秒讀取一次溫濕度,并通過串口輸出。

wKgZoWc1xWGAFx8GAAYPVht_a7Y018.jpg

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1Y6lkd6YjQyW9bxpsW8B36g?pwd=LCKF 提取碼:LCKF

審核編輯 黃宇

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

    關注

    5

    文章

    579

    瀏覽量

    35723
  • CW32
    +關注

    關注

    1

    文章

    203

    瀏覽量

    641
收藏 人收藏

    評論

    相關推薦

    CW32模塊使用 SHT20溫濕度傳感器

    由瑞士Sensirion推出的 SHT20數字溫濕度傳感器,基于領先世界的CMOSens ? 數字傳感技術,具有極高的可靠性和卓越的長期穩定性。全量程標定,兩線數字接口,可與單片機直接
    的頭像 發表于 12-05 12:14 ?156次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 <b class='flag-5'>SHT</b>20<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    CW32模塊使用案例 AHT10溫濕度傳感器

    AHT10,新一代溫濕度傳感器在尺寸與智能方面建立了新的標準:它嵌入了適于回流焊的雙列扁平無引腳SMD 封裝,底面 4 x 5mm ,高度1.6mm。傳感器輸出經過標定的數字信號,標準 I 2 C
    的頭像 發表于 11-28 17:28 ?381次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用案例 AHT10<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    基于CW32模塊SHT30溫濕度傳感器設計

    我們的目標是將例程移植至CW32F030C8T6開發板上【測量溫濕度的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。
    的頭像 發表于 11-12 11:14 ?300次閱讀
    基于<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>的<b class='flag-5'>SHT30</b><b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>設計

    溫濕度傳感器種類及原理的優劣分析

    溫濕度傳感器是一種能夠感知并測量環境中溫度和濕度變化的設備,它們在環境監測、氣象觀測、農業、工業生產、智能家居等多個領域發揮著重要作用。下面將對溫濕度
    的頭像 發表于 10-21 15:05 ?702次閱讀

    溫濕度傳感器是什么類型的傳感器

    溫濕度傳感器是一種能夠實時監測和記錄環境中溫度和濕度變化的設備或裝置。這類傳感器廣泛應用于環境監測、氣象觀測、農業、工業生產、倉儲管理、智能家居、醫療健康等多個領域,為相關領域的研究、
    的頭像 發表于 10-21 14:53 ?490次閱讀

    【RA-Eco-RA0E1-32PIN-V1.0開發板試用】sht30溫濕度傳感器

    這一章節,繼續探究RA0E1的硬件iic外設。來驅動SHT30溫濕度傳感器,該款溫濕度傳感器具有高精度穩定性,可以精確到0.125度的分辨率
    發表于 10-14 23:40

    CW32模塊使用 DHT11溫濕度傳感器

    DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。其成本低、長期穩定、可以測量相對濕度和溫度測量,并可以只使用一根數
    的頭像 發表于 09-09 18:21 ?1341次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 DHT11<b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>

    溫濕度傳感器怎么調試

    溫濕度傳感器是一種廣泛應用于工業、農業、氣象、科研等領域的傳感器,用于測量環境的溫度和濕度。在實際應用中,溫濕度
    的頭像 發表于 08-19 15:04 ?987次閱讀

    溫濕度傳感器技術參數有哪些

    溫濕度傳感器是一種用于測量環境溫度和濕度傳感器。它們廣泛應用于氣象、農業、工業、醫療、智能家居等領域。本文將介紹溫濕度
    的頭像 發表于 08-19 15:03 ?1068次閱讀

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

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

    如何用stm32實現將IIC溫濕度傳感線采集到的數據轉發到485的設備。

    各位前輩,小弟剛畢業。公司要求實現這么一個項目,把iic協議的sht30溫濕度傳感器線采集到的數據轉在485通訊的顯示屏上打印出來,小弟毫無頭緒,網上資料不多,望指點。
    發表于 06-21 09:40

    基于51單片機的SHT11溫濕度監測系統,LCD1602顯示,上下限按鍵設置

    設計要求 1.設計一套基于51單片機的溫濕度Proteus仿真監控系統; 2.采用高精度的SHT11溫濕度傳感器模塊; 3.LCD液晶實時顯
    發表于 03-26 17:44

    【原創】DHT11傳感器溫濕度監測系統畢設,論文、代碼、原理圖和仿真介紹

    11溫濕度傳感器元件,沒有DHT11傳感器元件。Proteus8版本經過升級更新后,元件庫已添加了DHT11傳感器元件。 因此,本設計采用Proteus8.6版本的仿真軟件進行開發。
    發表于 03-13 00:53

    溫濕度傳感器有哪些應用場景?

    溫濕度傳感器在眾多領域,特別是在實時記錄溫濕度變化的工作中最為廣泛。溫濕度傳感器可以根據所記錄的內容,對其進行科學有效的管理、分析和歸納。下
    的頭像 發表于 02-19 16:28 ?1363次閱讀
    <b class='flag-5'>溫濕度</b><b class='flag-5'>傳感器</b>有哪些應用場景?

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

    溫濕度傳感器是一種用于測量環境溫度和相對濕度的裝置。它通常用于工業、農業、氣象、室內空調等領域。本文將詳細介紹溫濕度傳感器的工作原理和接線方
    的頭像 發表于 02-14 18:00 ?9491次閱讀
    主站蜘蛛池模板: 欧美日韩一区二区三区视频| 美女毛片免费| 国产免费高清福利拍拍拍| 人人爱人人艹| 国内精品视频在线| 日日操夜夜操免费视频| 亚洲一区二区免费| 又黄又涩的视频| 免费人成在线观看网站品爱网| 午夜嘿咻| 热99精品| 免费一级毛片私人影院a行| 手机看片久久| 免费二级c片观看| 久久就是精品| 国产香蕉在线精彩视频| 一级毛片黄色| 成年女人在线观看| 国内激情自拍| 日本h片在线观看| 色一乱一伦一区一直爽| www.狠狠干| 日韩中文电影| 天天天综合| 宅男在线看片| 成人在色线视频在线观看免费大全| 天天爱天天做天天爽夜夜揉| 欧美色图狠狠干| 户外露出精品视频国产| 天天操精品| 在线天堂网www资源种子| 国产精品国产主播在线观看| 欧美专区欧美吧| 欧美色欧美亚洲高清在线视频| 免费看片免| 日本一级高清不卡视频在线 | 亚洲一区二区三区在线| 男人天堂综合网| 国产不卡毛片| 日韩欧美色| 尤物久久99热国产综合|