⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shtxx.h

📁 用单片机M8和传感器H10来测量温湿度
💻 H
字号:
#ifndef _SHTXX_H
#define _SHTXX_H

#define SHTXX_SCK_DDR		DDRC
#define SHTXX_SCK_PORT		PORTC
#define SHTXX_SCK_BIT		(4)

#define SHTXX_DAT_DDR		DDRC
#define SHTXX_DAT_PORT		PORTC
#define SHTXX_DAT_PIN		PINC
#define SHTXX_DAT_BIT		(5)
#define BITSET(X,Y)			((X)|=(1<<(Y)))
#define BITCLR(X,Y)			((X)&=(~(1<<(Y))))
#define BITCHK(X,Y)			((X)&(1<<(Y)))
/*
#define SHTXX_SCK_HIGH()	{BITSET(SHTXX_SCK_DDR, SHTXX_SCK_BIT); BITSET(SHTXX_SCK_PORT, SHTXX_SCK_BIT); _delay_us(10);}
#define SHTXX_SCK_LOW()		{BITSET(SHTXX_SCK_DDR, SHTXX_SCK_BIT); BITCLR(SHTXX_SCK_PORT, SHTXX_SCK_BIT); _delay_us(10);}

#define SHTXX_DAT_1()		{BITSET(SHTXX_DAT_DDR, SHTXX_DAT_BIT); _delay_us(1); BITSET(SHTXX_DAT_PORT, SHTXX_DAT_BIT); _delay_us(5);}
#define SHTXX_DAT_0()		{BITSET(SHTXX_DAT_DDR, SHTXX_DAT_BIT); _delay_us(1); BITCLR(SHTXX_DAT_PORT, SHTXX_DAT_BIT); _delay_us(5);}

#define SHTXX_START()		{SHTXX_DAT_1(); SHTXX_SCK_LOW(); SHTXX_SCK_HIGH(); SHTXX_DAT_0(); SHTXX_SCK_LOW(); _delay_us(2); SHTXX_SCK_HIGH(); SHTXX_DAT_1();  SHTXX_SCK_LOW();}
#define SHTXX_ACK()			{BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); if(!(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT)));}
#define SHTXX_WAIT()		{BITCLR(SHTXX_DAT_DDR, SHTXX_DAT_BIT); while(BITCHK(SHTXX_DAT_PIN, SHTXX_DAT_BIT));}
*/
#define SHTXX_CMD_TEMPTURE	0b00000011
#define SHTXX_CMD_HUMIDITY	0b00000101
#define SHTXX_RD_STATE_REG	0b00000111
#define SHTXX_WR_STATE_REG	0b00000110
#define SHTXX_SOFT_RST			0b00011110

#define SHTXX_MODE_TEMP		0x01
#define SHTXX_MODE_HUMI		0x02




void SHTXX_SCK_HIGH(void);
void SHTXX_SCK_LOW(void);
void SHTXX_DAT_1(void);
void SHTXX_DAT_0(void);
void SHTXX_START(void);
void SHTXX_DAT_0(void);
void SHTXX_DAT_1(void);
void SHTXX_SCK_LOW(void);
void SHTXX_SCK_HIGH(void);
void shtxx_init(void);
void shtxx_reconnect(void);
uint8 shtxx_write_byte(uint8 cmd);
uint8 shtxx_softrst(void);
uint8 shtxx_read_byte(uint8 dat_crc);
uint16 shtxx_calc_humi(uint16 *shtxx_humi);
uint16 shtxx_calc_temp(uint16 *shtxx_temp);
void hex_bcd(uint16 hex16,uint8 * bcd);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -