0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ZS03/ZS05溫濕度模組應(yīng)用例程

Harmony&嵌入式學(xué)習(xí) ? 來(lái)源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-06-14 10:45 ? 次閱讀
//****************************************************************//
//ZS03單總線數(shù)據(jù)讀取程序

//****************************************************************//
 
#ifndef _ZS03_H_
#define _ZS03_H_
#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "stdio.h"
 
//IO方向設(shè)置
#define SDA_IN()  {GPIOB->CRH&=0XF0FFFFFF;GPIOB->CRH|=0x08000000;}//上下拉輸入
#define SDA_OUT() {GPIOB->CRH&=0XF0FFFFFF;GPIOB->CRH|=0x03000000;}//通用推挽輸出
 
 
//IO操作函數(shù)
//#define IIC_SCL    PBout(13) //SCL輸出	
#define SEND_SDA   PBout(14) //SDA輸出	 
#define READ_SDA   PBin(14)  //SDA輸入 
 
 
 
void ZS03_Init(void);//初始化SDA(PB14),CLK(PB13)
u8 ZS03_Rdata(void);
u8 ZS03_READ(void);
 
 
 
 
#endif	//_ZS03_H_
 
 
 
#include "ZS03.h"
 
 
float Temprature,Humi;//定義溫濕度變量 ,此變量為全局變量
u8 Sensor_AnswerFlag=0;//定義傳感器響應(yīng)標(biāo)志
u8 Sensor_ErrorFlag;  //定義讀取傳感器錯(cuò)誤標(biāo)志
 
 
/********************************************
|* 功能: 初始化SDA(PB14),CLK(PB13)	        *|
********************************************/
void ZS03_Init(void)
{					     
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(	RCC_APB2Periph_GPIOB, ENABLE );//使能GPIOB	
	   
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14;//PB13,PB14
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD ;   //開(kāi)漏輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_ResetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14); 	//PB13,PB14 輸出低(SCL上電立即拉低)
}
 
 
/********************************************
|* 功能: 讀傳感器發(fā)送的單個(gè)字節(jié)	        *|
********************************************/
u8 ZS03_Rdata(void)
{
	u8 i;
	u16 j;
	u8 data=0,bit=0;
	
	for(i=0;i=50000) //防止進(jìn)入死循環(huán)
			{
				break;
			}
		}
		//延時(shí)Min=26us Max70us 跳過(guò)數(shù)據(jù)"0" 的高電平		 
		delay_us(30);
 
		//判斷傳感器發(fā)送數(shù)據(jù)位
		bit=0;
		if(READ_SDA)
		{
			bit=1;
		}
		j=0;
		while(READ_SDA)	//等待高電平結(jié)束
		{
			if(++j>=50000) //防止進(jìn)入死循環(huán)
			{
				break;
			}		
		}
		data=500) //防止進(jìn)入死循環(huán)
			{
				Sensor_ErrorFlag=1;
				break;
			}
		}
 
		j=0;
		while(READ_SDA)//判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
		{
			if(++j>=800) //防止進(jìn)入死循環(huán)
			{
				Sensor_ErrorFlag=1;
				break;
			}		
		}
		//接收數(shù)據(jù)
		Humi_H=ZS03_Rdata();
		Humi_L=ZS03_Rdata();
		Temp_H=ZS03_Rdata();	
		Temp_L=ZS03_Rdata();
		Temp_CAL=ZS03_Rdata();
 
		temp=(u8)(Humi_H+Humi_L+Temp_H+Temp_L);//只取低8位
 
		if(Temp_CAL==temp)//如果校驗(yàn)成功,往下運(yùn)行
		{
			Humi=Humi_H*10+Humi_L; //濕度
	
			if(Temp_L&0X80)	//為負(fù)溫度
			{
				Temprature =0-(Temp_H*10+((Temp_L&0x7F)));
			}
			else   //為正溫度
			{
				Temprature=Temp_H*10+Temp_L;//為正溫度
			}
			//判斷數(shù)據(jù)是否超過(guò)量程(溫度:-20℃~60℃,濕度20%RH~95%RH)
			if(Humi>950) 
			{
			  Humi=950;
			}
			if(Humi600)
			{
			  Temprature=600;
			}
			if(Temprature

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2552

    文章

    51272

    瀏覽量

    755044
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2892

    瀏覽量

    88209
  • 模組
    +關(guān)注

    關(guān)注

    6

    文章

    1504

    瀏覽量

    30485
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ZS5887與ZS5889的特點(diǎn)

    ZS5887 USB充電識(shí)別IC,單口 ,SOT23-5封裝,輸出電流可設(shè)定。ZS5889 USB充電識(shí)別IC,雙口 ,SOT23-6L封裝。ZS5887/ZS5889都可用于充電器、
    發(fā)表于 08-28 11:27

    太陽(yáng)能鋰電充電管理ZS6093/ZS6073/ZS6075/ZS6076/ZS6077/ZS6078全系列分享

    太陽(yáng)能鋰電充電管理ZS6093/ZS6073/ZS6075/ZS6076/ZS6077/ZS60
    發(fā)表于 11-19 10:57

    如何快速設(shè)計(jì)一款溫濕度產(chǎn)品原型(MCU接入)

    三明治開(kāi)發(fā)板溫濕度傳感套件主要包含:溫濕度傳感器功能板,板載 SHT30 溫濕度傳感器,I2C 接口,負(fù)責(zé)溫濕度數(shù)據(jù)的采集傳輸。Wi-Fi MCU 通信板,板載涂鴉 TYWE3S
    發(fā)表于 06-27 11:00

    庫(kù)房無(wú)線溫濕度監(jiān)控方案 無(wú)線溫濕度監(jiān)控系統(tǒng) 倉(cāng)儲(chǔ)物流無(wú)線溫濕度

    【庫(kù)房無(wú)線溫濕度監(jiān)控方案】[無(wú)線溫濕度監(jiān)控系統(tǒng)]【無(wú)線溫濕度傳感器】【醫(yī)藥庫(kù)房、大型物流存儲(chǔ)溫濕度遠(yuǎn)程監(jiān)控系統(tǒng)】今現(xiàn)代化建設(shè)和國(guó)民經(jīng)濟(jì)發(fā)展迅速。社會(huì)對(duì)生產(chǎn)環(huán)境和生活環(huán)境意識(shí)的要求也越來(lái)
    發(fā)表于 03-01 10:15

    GPRS無(wú)線溫濕度變送器

    GPRS無(wú)線溫濕度變送器GPRS無(wú)線溫濕度變送器GPRS無(wú)線溫濕度變送器
    發(fā)表于 03-02 17:45 ?22次下載

    WIFI網(wǎng)絡(luò)型溫濕度變送器

    WIFI探頭型溫濕度變送器,無(wú)線溫濕度變送器,網(wǎng)絡(luò)型溫濕度傳感器。
    發(fā)表于 03-02 17:46 ?23次下載

    溫濕度監(jiān)測(cè)

    進(jìn)行溫濕度的仿真,采用PROTEUS進(jìn)行糧倉(cāng)溫濕度的檢測(cè)與控制。
    發(fā)表于 05-11 14:33 ?27次下載

    基于STM32串口顯示溫濕度例程資料下載

    基于STM32串口顯示溫濕度例程資料下載
    發(fā)表于 04-22 10:44 ?70次下載
    基于STM32串口顯示<b class='flag-5'>溫濕度</b><b class='flag-5'>例程</b>資料下載

    DHT11溫濕度傳感器的AVR單片機(jī)例程

    DHT11溫濕度傳感器的AVR單片機(jī)例程
    發(fā)表于 05-16 14:46 ?26次下載
    DHT11<b class='flag-5'>溫濕度</b>傳感器的AVR單片機(jī)<b class='flag-5'>例程</b>

    溫濕度計(jì)怎么使用_溫濕度計(jì)怎么調(diào)

    本文首先闡述了溫濕度計(jì)的使用方法,其次介紹了溫濕度計(jì)的調(diào)節(jié),最后介紹了家用指針式溫濕度計(jì)調(diào)校方法。
    發(fā)表于 02-28 11:16 ?10.4w次閱讀

    溫濕度記錄儀如何讀取,溫濕度記錄儀的操作介紹

    溫濕度記錄儀是溫濕度測(cè)量?jī)x器中溫濕度計(jì)中的一種。其具有內(nèi)置溫濕度傳感器或可連接外部溫濕度傳感器測(cè)量溫度和
    發(fā)表于 06-28 16:31 ?3909次閱讀

    溫濕度記錄儀在檔案庫(kù)房的溫濕度調(diào)控方案中的應(yīng)用

    庫(kù)房?jī)?nèi)的溫濕度與檔案的保存密切相關(guān),溫濕度不適宜都會(huì)影響檔案的保存時(shí)間,對(duì)檔案保存造成影響。為了使檔案庫(kù)房的溫濕度等符合檔案儲(chǔ)存的要求,需要采取一定的措施,對(duì)檔案庫(kù)房的溫濕度進(jìn)行控制和
    發(fā)表于 07-30 11:46 ?1452次閱讀

    溫濕度記錄儀的原理說(shuō)明

    ?溫濕度記錄儀是溫濕度測(cè)量?jī)x器中溫濕度計(jì)中的一種。其具有內(nèi)置溫濕度傳感器或可連接外部溫濕度傳感器測(cè)量溫度和
    的頭像 發(fā)表于 12-25 22:59 ?2691次閱讀

    ZS2933SL.ZS2934SL.ZS2935SL產(chǎn)品規(guī)格書(shū)

    ZSpoweric立元微ZS2931SL.ZS2932SL.ZS2933SL.ZS2934SL.ZS2935SL產(chǎn)品規(guī)格書(shū)
    發(fā)表于 09-18 17:58 ?8次下載

    學(xué)習(xí)筆記|如何用Go程序采集溫濕度傳感器數(shù)據(jù)

    整個(gè)利用Go語(yǔ)言從AHT20溫濕度傳感器獲取數(shù)據(jù)的完整步驟和實(shí)現(xiàn)方法。一、C程序獲取AHT20溫濕度1、參考ElfBoard官方例程03-例程
    的頭像 發(fā)表于 03-21 11:46 ?751次閱讀
    學(xué)習(xí)筆記|如何用Go程序采集<b class='flag-5'>溫濕度</b>傳感器數(shù)據(jù)