SHT30使用记录(基于AVR)
硬件篇
硬件按照数据手册连接到单片机的IIC接口或者任意两个IO口即可,加2个4.7K左右上拉电阻,本例中如下:
#define SDA_OUT DDRF|=0x01
#define SDA_IN DDRF&=~0x01
#define SDA_L PORTF&=~0x01
#define SDA_H PORTF|=0x01
#define SDA_READ (PINF&0x01)
#define SCL_L PORTF&=~0x02
#define SCL_H PORTF|=0x02
#define SCL_READ (PINF&0x02)
软件篇
软件参考数据手册流程:
a、设置芯片IIC地址 0x44
b、读取芯片ID
c、读取温湿度数据
参考官方提供的源码,修改IIC部分代码如下:
void I2c_Init(void)
{
SDA_OUT;
SDA_H; // I2C-bus idle mode SDA released
SCL_H; // I2C-bus idle mode SCL released
}
void I2c_StartCondition(void)
{
SDA_OUT;
SDA_H;
_delay_us(1);
SCL_H;
_delay_us(1);
SDA_L;
_delay_us(10); // hold time start condition (t_HD;STA)
SCL_L;
_delay_us(1);
}
void I2c_StopCondition(void)
{
SDA_OUT;
SCL_L;
_delay_us(1);
SDA_L;
_delay_us(1);
SCL_H;
_delay_us(10); // set-up time stop condition (t_SU;STO)
SDA_H;
_delay_us(10);
}
完整测试代码下载连接:https://download.csdn.net/download/shuzheai520520/12341060