作者:AnthonyYMH

前排提示:在进行数据传输过程中,不要使用打印,否则会影响时序,造成数据读取错误,可以先用变量保存,读取完毕后在打印

驱动代码下载地址:

https://download.csdn.net/download/weixin_38075894/12015643(代码自己一步步调的,有积分的小伙伴支持一下吧!!!就5积分!!!)

https://gitee.com/anthonyymh/driver-file/tree/master/

Pin引脚以功能

IIC时序要求

串行总线地址

要与HDC1080通信,主机必须首先通过从机地址字节寻址从机设备。 该地址字节由七个地址位和一个指示执行读或写操作意图的方向位组成。 HDC1080的I2C地址为1000000(7位地址)。

读写操作

要访问HDC1080上的特定寄存器,请将所需的寄存器地址值写入指针寄存器。指针值是从地址字节后R / W位为低的第一个字节。 对HDC1080的每次写操作都需要一个指针寄存器的值(参见图10)。

当从HDC1080读取时,通过写操作存储在指针中的最后一个值用于确定读操作访问哪个寄存器。 要更改读操作的指针寄存器,必须将新值写入指针寄存器。 该事务通过发出R / W位为低的从地址字节,然后是指针字节来完成。 无需其他数据(参见图11)。

主器件可以产生START条件并发送R / W位为高的从器件地址字节以启动读命令。 注意,寄存器字节首先发送MSB,然后发送LSB。 只读寄存器中的写操作,例如(DEVICE ID,MANUFACTURER ID,SERIAL ID),在每个数据后返回NACK字节; 对未使用地址的读/写操作在指针后返回NACK; I2C地址错误的读/写操作会在I2C地址后返回NACK。

设备测量配置

默认情况下,HDC1080将首先执行温度测量,然后进行湿度测量。 上电时,HDC1080进入低功耗睡眠模式,无法主动测量。 使用以下步骤执行温度和湿度测量,然后检索结果:

  1. 在寄存器地址0x02中配置采集参数:

(a)通过将位[12]设置为1,将采集模式设置为测量温度和湿度

(b)设置所需的温度测量分辨率:

- 将位[10]设置为0以获得14位分辨率。

- 将位[10]设置为1以获得11位分辨率。

(c)设置所需的湿度测量分辨率:

- 将位[9:8]设置为00,以获得14位分辨率。

- 将位[9:8]设置为01以获得11位分辨率。

- 将位[9:8]设置为10,分辨率为8位。

  1. 通过执行指针写入事务并将地址指针设置为0x00来触发测量

- 将地址指针设置为0x00以进行温度测量。

- 将地址指针设置为0x01以进行湿度测量。

  1. 根据转换时间等待测量完成
  2. 读取输出数据:

从寄存器地址0x00读取温度数据,然后在单个事务中读取寄存器地址0x01的湿度数据,如图14所示。如果测量结果尚不可用,则读操作将返回NACK,如图13所示。

如果只需要测量湿度或温度,以下步骤将执行测量并检索结果:

1.在寄存器地址0x02中配置采集参数:

(a)通过将位[12]设置为0,将采集模式设置为独立测量温度或湿度

(b)对于温度测量,设置所需的温度测量分辨率:

- 将位[10]设置为0以获得14位分辨率。

- 将位[10]设置为1以获得11位分辨率。

(c)对于湿度测量,设置所需的湿度测量分辨率:

- 将位[9:8]设置为00,以获得14位分辨率。

- 将位[9:8]设置为01以获得11位分辨率。

- 将位[9:8]设置为10,分辨率为8位。

后面的步骤和同时测量温度和湿度的一样

【注意】

在温度或相对湿度测量期间,可以读取输出寄存器(地址0x00和0x01),而不会影响任何正在进行的测量。 请注意,在测量正在进行时写入地址0x00或0x01将中止正在进行的测量。

寄存器

HDC1080有一个8位指针,用于寻址给定的数据寄存器。 指针标识哪个数据寄存器应响应双线总线上的读或写命令。 该寄存器随每个写命令设置。 在执行读取命令之前,必须发出写入命令以在指针中设置正确的值。 指针的上电复位(POR)值为0x00,选择温度测量。

温度寄存器

温度寄存器是二进制格式的16位结果寄存器(2个LSB D1和D0始终为0)。 采集的结果总是14位值。 结果的准确性与所选的转换时间有关。 可以从输出数据计算温度:

湿度寄存器

湿度寄存器是二进制格式的16位结果寄存器(2个LSB D1和D0始终为0)。 采集结果始终为14位值,而精度与所选转换时间有关。 可以从输出数据计算湿度:

配置寄存器

转化时间

精度

范围

HDC1080温湿度驱动 IIC I2C STM32相关推荐

  1. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...

    转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...

  2. STM32物联网项目-SHT30温湿度采集(IIC通信)

    SHT30温湿度采集(IIC通信) SHT30数字温湿度传感器 SHT3x湿度传感器系列包括低成本版本SHT30.标准版本SHT31,以及高端版本SHT35. SHT3x湿度传感器系列结合了多种功能和 ...

  3. linux iic设备中断,Linux设备驱动之I2C架构分析(一)

    Linux设备驱动之I2C架构分析 一:前言 I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种 ...

  4. stm32f103驱动SHT20( I2C )

    以下为SHT10的参考资料:STM32 SHT10温湿度传感器的信号采集  SHT20技术手册 首先讲讲SHT10这款温室度传感器.SHT1x(包括SHT10,SHT11和SHT15)属于Sersir ...

  5. 开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板

    开发调试工具:USB转IIC/I2C/SPI/UART适配器模块可编程开发板 发个方便测试I2C.SPI.1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成 ...

  6. HIH8121(HIH8000系列)温湿度传感器驱动代码-基于STM32 HAL库

    HIH8121温湿度传感器代码基于STM32 HAL库 HIH8121传感器简介 驱动代码.c 驱动代码.h main函数 HIH8121传感器简介 HIH8121是霍尼韦尔公司生产的测量温湿度参数一 ...

  7. linux驱动之i2c学习

    最近在研究linux的i2c驱动,从最底层i2c控制器初始化到应用层与i2c设备交互基本打通了. 一.linux的i2c架构可以用下图表示: IIC适配器对应一条i2c总线,linux里面用i2c_a ...

  8. 第三章 rt-thread设备驱动模型-i2c驱动

    rt-thread设备驱动模型-i2c驱动 1. 回顾 前面两章分别介绍了rt-thread设备驱动框架的实现原理,以及介绍了一个简单的看门狗驱动程序,用来加深对驱动框架的理解.看门狗驱动程序最终归纳 ...

  9. 《Linux驱动:I2C驱动看这一篇就够了》

    文章目录 一,前言 二,IIC驱动的体系架构 2.1 IIC核心 2.2 IIC适配器 2.2.1 适配器驱动资源的初始化和注册 2.2.2 IIC适配器里的通信方法 2.2.3 IIC适配器和IIC ...

  10. 总线驱动---IIC驱动

    总线驱动-IIC驱动 文章目录 总线驱动---IIC驱动 Linux I2C体系结构 IIC-core(协议层) IIC总线驱动 IIC设备驱动 I.MX6U 的 I2C 适配器驱动分析 I2C 设备 ...

最新文章

  1. Normalization笔记
  2. linux并发控制之原子操作
  3. 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?...
  4. java强制关闭远程桌面_elasticsearch中的java.io.IOException: 远程主机强迫关闭了一个现有的连接...
  5. Windows和Linux hosts 文件位置
  6. Mac M1安装ffmpeg报错DependencyNotInstalled: Found neither the ffmpeg nor avconv executables.
  7. 非常强的用户体验的网站功能
  8. Hadoop学习总结之Map-Reduce的过程解析
  9. tcpdump抓包工具详解
  10. css中设置字体下划线,css如何设置字体下划线
  11. python语言月份缩写_Python替换月份为英文缩写的实现方法
  12. NVIDIA NCCL 源码学习(八)- 数据通信链路transport的建立
  13. 计算机考研如何安排时间安排,2015年考研计算机复习计划及时间安排
  14. 浅谈微信三级分销系统的漏洞
  15. 计算机职称考试科目及内容,职称计算机-考试科目
  16. xp 本地计算机策略组,本地组策略-win10没有本地安全策略组怎么打开软件
  17. 360桌面助手待办事项同步/迁移的方法(从一台电脑迁移到另外一台电脑上)
  18. 01 Redis安装、配置详解、数据备份与恢复
  19. vue 移动端 实现 一像素实线
  20. maven下载依赖提示系统找不到指定路径的问题

热门文章

  1. Emerging Properties in Self-Supervised Vision Transformers(2021)
  2. u盘安装centos8黑屏_求助啊为何装centos7一点安装就黑屏
  3. colab读取Google Drive
  4. Connection reset by 20.205.243.166 port 22fatal: Could not read from remote repository.Please mak
  5. linux解决依赖性问题
  6. linux 卸载 sdcc,Linux sdcc安装
  7. Warning: count(): Parameter must be an array or an object that implements Countable快速解决方法
  8. Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法
  9. Cao Le的 Emacs org mode 学习笔记
  10. The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView