初始版本
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
/***************************************************************
|
||||
* File name : SHT20.h
|
||||
* Description : SHT20 Humidity and Temperature Sensors
|
||||
* M C U : STM32L051XX
|
||||
* Compiler : Keil uVision V5.00a
|
||||
* Created by :
|
||||
* Copyright : Copyright(c) 2018
|
||||
* Created data : 2018.03.16
|
||||
* Modified data: 2018.03.16
|
||||
* Vision : V1.0
|
||||
*****************************************************************/
|
||||
|
||||
/*****************Function Declaration*************************/
|
||||
/*----define to easier to use-----*/
|
||||
#include <stdint.h>
|
||||
#include "bsp.h"
|
||||
|
||||
typedef enum {
|
||||
SHT20_IDLE,
|
||||
SHT20_INIT,
|
||||
SHT20_READ_TEMPR,
|
||||
SHT20_READ_HUMI,
|
||||
SHT20_READ_DATA
|
||||
}SHT20Status_m;
|
||||
|
||||
typedef struct {
|
||||
SHT20Status_m Sht20Status;
|
||||
int Sht201mSDelayCnt;
|
||||
float Tempreture;
|
||||
float Humidity;
|
||||
uint8_t Cmd;
|
||||
}SHT20Var_t;
|
||||
|
||||
#define SHT20_Write_Add 0x80
|
||||
#define SHT20_Read_Add 0x81
|
||||
#define SHT20_Measurement_RH_HM 0XE5
|
||||
#define SHT20_Measurement_T_HM 0XE3
|
||||
#define SHT20_Measurement_RH_NHM 0XF5 //非主机模式地址
|
||||
#define SHT20_Measurement_T_NHM 0XF3 //非主机模式地址
|
||||
#define SHT20_READ_REG 0XE7
|
||||
#define SHT20_WRITE_REG 0XE6
|
||||
#define SHT20_SOFT_RESET 0XFE
|
||||
|
||||
//#define I2C_SOFTWARE
|
||||
|
||||
#ifdef I2C_SOFTWARE
|
||||
|
||||
#define SHT20_ADDRESS 0X80
|
||||
|
||||
#define SHT20_SDA_IN() I2C_SDA_IN() //设置引脚输入模式
|
||||
#define SHT20_SDA_OUT() I2C_SDA_OUT() //设置引脚输出模式
|
||||
#define SHT20_SDA_GET() I2C_SDA_GET()
|
||||
|
||||
#define SHT20_I2C_SDA_LOW() I2C_SDA_LOW()
|
||||
#define SHT20_I2C_SCL_LOW() I2C_SCL_LOW()
|
||||
#define SHT20_I2C_SDA_HIGH() I2C_SDA_HIGH()
|
||||
#define SHT20_I2C_SCL_HIGH() I2C_SCL_HIGH()
|
||||
|
||||
|
||||
#define SHT20_I2C_LOW() {SHT20_I2C_SDA_LOW();SHT20_I2C_SCL_LOW();}
|
||||
|
||||
/*================================================================
|
||||
[ Name ]void IO_I2CInit(void)
|
||||
[Function]I2C初始化 空闲状态
|
||||
[ Notes ]
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
void IO_I2CInit(void);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]I2CStart
|
||||
[Function]开始
|
||||
[ Notes ]
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
void I2CStart(void);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]I2CStop
|
||||
[Function]结束
|
||||
[ Notes ]
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
void I2CStop(void);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]I2C_Write_Byte
|
||||
[Function]写一个字节 返回ACK或NACK
|
||||
[ Notes ]从高到低发
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
uint8_t I2C_Write_Byte(uint8_t Write_Byte);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]I2C_Read_Byte
|
||||
[Function]读一个字节,入库参数用于控制应答状态 ACK或NAC
|
||||
[ Notes ]从高到低
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
uint8_t I2C_Read_Byte(uint8_t AckValue);
|
||||
|
||||
|
||||
/*================================================================
|
||||
[ Name ]SHT20_SoftReset
|
||||
[Function]SHT20软件复位
|
||||
[ Notes ]从高到低
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
void SHT20_SoftReset(void);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]SET_Resolution
|
||||
[Function]写寄存器 设置分辨率
|
||||
[ Notes ]从高到低
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
void SET_Resolution(void);
|
||||
|
||||
/*================================================================
|
||||
[ Name ]ReadSht20
|
||||
[Function]非主机模式,读取温湿度值
|
||||
[ Notes ]入口控制读取温度或湿度
|
||||
[ Author ]LZH
|
||||
[ Data ]2016.06.22
|
||||
================================================================*/
|
||||
float ReadSht20(char whatdo);
|
||||
|
||||
float ReadSht20_Medium (void);
|
||||
|
||||
#else
|
||||
|
||||
#define SHT20_ADDRESS 0X40
|
||||
|
||||
#define Sht20_Reg_Write(DevAddr, RegData, rLen) I2C_Write(DevAddr, NULL, RegData, rLen)
|
||||
#define Sht20_Read(DevAddr, RegAddr, rData, rLen) I2C_Read(DevAddr, RegAddr, rData, rLen)
|
||||
#define Sht20_Delay(x)
|
||||
|
||||
void SHT20_reset(void);
|
||||
|
||||
|
||||
#endif
|
||||
void SHT20_GetValue(float *Tempreture, float *Humidity);
|
||||
void SHT20Start(void);
|
||||
void SHT20LoopHandler(void);
|
||||
void SHT201mSRoutine(void);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user