1 Star 2 Fork 2

蓝凌风/EmbeddedLib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
IIC.h 2.26 KB
一键复制 编辑 原始数据 按行查看 历史
蓝凌风 提交于 2023-11-06 10:27 . 最新修改
#ifndef _IIC_H_
#define _IIC_H_
#include "bsp.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
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
}SHT2xCommand;
typedef enum {
SHT2x_RES_12_14BIT = 0x00, // RH=12bit, T=14bit
SHT2x_RES_8_12BIT = 0x01, // RH= 8bit, T=12bit
SHT2x_RES_10_13BIT = 0x80, // RH=10bit, T=13bit
SHT2x_RES_11_11BIT = 0x81, // RH=11bit, T=11bit
SHT2x_RES_MASK = 0x81 // Mask for res. bits (7,0) in user reg.
} SHT2xResolution;
typedef enum {
SHT2x_EOB_ON = 0x40, // end of battery
SHT2x_EOB_MASK = 0x40, // Mask for EOB bit(6) in user reg.
} SHT2xEob;
typedef enum {
SHT2x_HEATER_ON = 0x04, // heater on
SHT2x_HEATER_OFF = 0x00, // heater off
SHT2x_HEATER_MASK = 0x04, // Mask for Heater bit(2) in user reg.
} SHT2xHeater;
typedef enum{
HUMIDITY,
TEMP
}SHT2xMeasureType;
typedef enum{
I2C_ADR_W = 128, // sensor I2C address + write bit
I2C_ADR_R = 129 // sensor I2C address + read bit
}I2cHeader;
typedef struct _s_soft_iic SOFT_IIC;
struct _s_soft_iic
{
OutputPort scl;
OpenDrainPort sda;
uint8_t (*ReadByte)(SOFT_IIC *soft_iic);
void (*WriteByte)(SOFT_IIC *soft_iic,uint8_t byte);
uint8_t (*WaitAck)(SOFT_IIC *soft_iic);
void (*Stop)(SOFT_IIC *soft_iic);
void (*Start)(SOFT_IIC *soft_iic);
void (*Init)(SOFT_IIC *soft_iic);
void (*Ack)(SOFT_IIC *soft_iic);
void (*NoAck)(SOFT_IIC *soft_iic);
void (*delay_nus)(uint16_t us);
};
SOFT_IIC new_soft_iic(uint32_t scl_gpiox,uint32_t scl_gpio_pinx,uint32_t sda_gpiox,uint32_t sda_gpio_pinx);
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mzwhhwj/EmbeddedLib.git
git@gitee.com:mzwhhwj/EmbeddedLib.git
mzwhhwj
EmbeddedLib
EmbeddedLib
master

搜索帮助