中级会员
 
- 积分
- 350
- 金钱
- 350
- 注册时间
- 2015-7-14
- 在线时间
- 76 小时
|

楼主 |
发表于 2019-9-9 13:32:36
|
显示全部楼层
#define RCC_IIC_PORT RCC_AHBPeriph_GPIOB // GPIO端口时钟
#define PORT_IIC GPIOB
#define PIN_IIC_SCL GPIO_Pin_6 // GPIO引脚
#define PIN_IIC_SDA GPIO_Pin_7 // GPIO引脚
#define IIC_SCL_HIGH() GPIO_SetBits(PORT_IIC,PIN_IIC_SCL) // SCL = 1
#define IIC_SCL_LOW() GPIO_ResetBits(PORT_IIC,PIN_IIC_SCL) // SCL = 0
#define IIC_SDA_HIGH() GPIO_SetBits(PORT_IIC,PIN_IIC_SDA) // SDA = 1
#define IIC_SDA_LOW() GPIO_ResetBits(PORT_IIC,PIN_IIC_SDA) // SDA = 0
#define IIC_SDA_READ() GPIO_ReadInputDataBit(PORT_IIC,PIN_IIC_SDA)!=0 // 读SDA口线状态
#define IIC_SCL_READ() GPIO_ReadInputDataBit(PORT_IIC,PIN_IIC_SCL)!=0 // 读SCL口线状态
typedef enum{
TRIG_T_MEASUREMENT_HM = 0xE3, // command trig. temp meas. hold master
TRIG_RH_MEASUREMENT_HM = 0xE5, // command trig. humidity meas. hold master
TRIG_T_MEASUREMENT_POLL = 0xF3, // command trig. temp meas. no hold master
TRIG_RH_MEASUREMENT_POLL = 0xF5, // command trig. humidity meas. no hold master
USER_REG_W = 0xE6, // command writing user register
USER_REG_R = 0xE7, // command reading user register
SOFT_RESET = 0xFE // command soft reset
}SHT20Command;
typedef enum {
SHT20_RES_12_14BIT = 0x00, // RH=12bit, T=14bit
SHT20_RES_8_12BIT = 0x01, // RH= 8bit, T=12bit
SHT20_RES_10_13BIT = 0x80, // RH=10bit, T=13bit
SHT20_RES_11_11BIT = 0x81, // RH=11bit, T=11bit
SHT20_RES_MASK = 0x81 // Mask for res. bits (7,0) in user reg.
} SHT20Resolution;
typedef enum {
SHT20_EOB_ON = 0x40, // end of battery
SHT20_EOB_MASK = 0x40, // Mask for EOB bit(6) in user reg.
} SHT20Eob;
typedef enum {
SHT20_HEATER_ON = 0x04, // heater on
SHT20_HEATER_OFF = 0x00, // heater off
SHT20_HEATER_MASK = 0x04, // Mask for Heater bit(2) in user reg.
} SHT20Heater;
typedef enum{
HUMIDITY,
TEMP
}SHT20MeasureType;
typedef enum{
IIC_ADR_W = 0x80, // sensor IIC address + write bit
IIC_ADR_R = 0x81 // sensor IIC address + read bit
}IICHeader;
|
|