si7006.h
#ifndef __SI7006_H__
#define __SI7006_H__
#include "iic.h"
void si7006_init();
short si7006_read_tem();
unsigned short si7006_read_hum();
#endif
ap3216c.h
#ifndef __AP3216C_H__
#define __AP3216C_H__
#include "iic.h"
/* 通过程序模拟实现I2C总线的时序和协议
* GPIOF ---> AHB4
* I2C1_SCL ---> PF14
* I2C1_SDA ---> PF15
*
* */
#define AP3216C_ADDR 0x1E
unsigned char ap3216c_init(void);
unsigned char ap3216c_read_byte(unsigned char slave_addr,
unsigned char reg_addr);
void ap3216c_write_byte(unsigned char slave_addr,
unsigned char reg_addr,
unsigned char dat);
void ap3216c_read_data(unsigned short* ir,
unsigned short* ps,
unsigned short* als);
#endif //__SI7006_H__
si7006.c
#include "si7006.h"
void si7006_init()
{
i2c_start();//主机发起起始信号
i2c_write_byte(0x40<