標(biāo)題:
sht20溫濕度程序
[打印本頁]
作者:
17377060207
時(shí)間:
2020-4-15 20:03
標(biāo)題:
sht20溫濕度程序
//頭文件
#include "iic.h"
#include "delay.h"
#include "sht20.h"
//宏
#define SHT20ADDR 0x80 //sht寫地址
#define ACK 0 //應(yīng)答信號(hào)
#define NACK 1 //非應(yīng)答
#define FAIL 1 //失敗返回
#define READ_TEMP_COMD 0xf3 //讀溫度
#define READ_HUMI_COMD 0xf5 //讀濕度
TempHumiValue_t temp_humi_Value;
static void SHT20_setResolution(void);
static void SHT20_setResolution(void);
void SHT20_softReset(void);
//寫一個(gè)字節(jié)函數(shù)
static u8 sht20_writeOneByte(u8 dataToWrite)
{
u8 ack;
IIC_sendByte(dataToWrite);
ack = IIC_waitAck();
return ack;
}
//復(fù)位
static void SHT20_softReset(void)
{
IIC_start();
SHT20_writeOneByte(SHT20ADDR&0xfe);
SHT20_writeOneByte(0xfe);
IIC_stop();
}
//初始化
void sht20_Init(void)
{
sht20_softReset();
}
//讀字節(jié)
static u8 sht20_readOneByte(u8 ack)
{
u8 temp;
temp=IIC_readByte(ack);
return temp;
}
//寫寄存器
static void sht20_setResolution(void)
{
IIC_start();
if(sht20_writeOneByte(sht20ADDR&0xfe)==ACK) //80
{
if(sht20_writeOneByte(0xe6)==ACK)
{
if(SHT20_writeOneByte(0x83)==ACK);
}
}
IIC_stop();
}
//讀取測(cè)量值
float SHT20_readTemOrHum(u8 commod)
{
float temp;
u8 ack=1;
u8 MSB,LSB;
float Humidity,Temperature;
SHT20_setResolution();
IIC_start();
ack = SHT20_writeOneByte(SHT20ADDR&0xfe);
if( ack == ACK )
{
if(SHT20_writeOneByte(commod)==ACK)
{
do
{
delay_ms(6);
IIC_start();
}while(SHT20_writeOneByte(SHT20ADDR|0x01)==NACK);
MSB = SHT20_readOneByte(ACK);
LSB = SHT20_readOneByte(ACK);
SHT20_readOneByte(NACK);
IIC_stop();
LSB &= 0xfc; //1111 1100
temp = MSB*256 + LSB;
if (commod==((u8)READ_HUMI_COMD))
{
Humidity =(temp*125)/65536-6;
return Humidity;
}
else if(commod==((u8)READ_TEMP_COMD))
{
/*-- calculate temperature [¡ãC] --*/
Temperature = (temp*175.72f)/65536-46.85f;
return Temperature;
}
}
}
return FAIL;
}
TempHumiValue_t * SHT20_readTemAndHum(void)
{
temp_humi_Value.humidity = SHT20_readTemOrHum(READ_HUMI_COMD);
temp_humi_Value.temperature = SHT20_readTemOrHum(READ_TEMP_COMD);
return &temp_humi_Value;
}
作者:
admin
時(shí)間:
2020-4-16 00:56
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1