有关HDC1080温湿度传感器的介绍我就不过多介绍,有兴趣可以到网上找规格书进行查看。
这里的重点是,通过0x02寄存器配置完成之后,在读0x00寄存器的时候,需要写完地址后延时至少20ms再去读,才能读到温湿度数据,等下代码上面会有体现
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
int fd = 0;
/**
* \brief I2C读数据
*
* \param[in] fd:I2C设备文件描述符
* \param[in] dev_addr:I2C设备地址
* \param[in] reg_addr:寄存器地址
* \param[in] data:指向希望写入的数据地址
* \param[in] len:希望写入的字节个数
*
* \retval 成功返回0,失败返回-1
*/
int i2c_init(unsigned char* dev_path)
{
int fd = 0;
//打开IIC总线