** 注:部分内容来自SHT20芯片手册翻译 **

1、寄存器列表

名称

指令(bin)

寄存器内容(hex)

主机模式(Trigger T measurement hold master)

1110’0011

0xe3

主机模式(Trigger RH measurement hold master)

1110’0101

0xe4

从机模式(Trigger T measurement no hold master)

1111’0011

0xf3

从机模式(Trigger RH measurement no hold master)

1111’0101

0xf4

写入用户寄存器(Write user register)

1110’0110

0xe6

读取用户寄存器(Read user register)

1110’0111

0xe7

软复位(Soft reset)

1111’1110

0xfe

2、User register

User 寄存器内容如下图所示,需要注意的是 保留位(Reserver)不允许被改变。但是默认值可能会不一样, 所以,我们在配置User寄存器的时候,必须要先读取一遍User 寄存器.

如下图所示,是一个读写 User Register的example。

上图中白色块由MCU发出,灰色块由 Sensor 发出。, 该流程设置的分辨率为RH8bit,T12bit。

参考代码如下图所示:

/*

* function : set resolution

* paragram : res [RH12_T14],[RH8_T12],[RH10_T13],[RH11_T11]

* return : null

* by zhangpeng

*/

void SHT20_SetResolution(uint8_t res)

{

IIC_Start();//S

IIC_SendByte(IIC_WRITE_ADDR);//I2C Addr + Write

IIC_SendByte(REG_READ_USER);//Read Register

IIC_Start();//S

IIC_SendByte(IIC_READ_ADDR);//I2C Addr + Read

Register = IIC_RecvByte();//Read Register content

IIC_NOACK();//NoAck

IIC_Start();//S

IIC_SendByte(IIC_WRITE_ADDR);//I2C Addr + Write

IIC_SendByte(REG_WRITE_USER);//Write Register

//修改bit7

if ((res == RH12_T14)||(RH8_T12 ==res))

{

Register = Register & 0x7F;

}

else

{

Register = Register | 0x80;

}

//修改bit0

if ((res == RH12_T14)||(RH10_T13 ==res))

{

Register = Register & 0xFE;

}

else

{

Register = Register | 0x01;

}

IIC_SendByte(Register);//Register content

IIC_Stop();//P

}

3、Soft Reset

Soft Reset 被用作软复位Sensor,当读取的数据出现错误的时候,可以通过发送 SoftReset 进行软重启。如下图所示:

参考代码:

/*

* function : soft reset SHT20

* paragram : null

* return : null

*/

void SHT20_SoftReset()

{

IIC_Start();//S

IIC_SendByte(IIC_WRITE_ADDR);//I2C Addr + Write

IIC_SendByte(REG_RESET); //Soft Reset

// todo :delay 10us

}

sht20 python_SHT20 IIC 寄存器概述相关推荐

  1. Exynos_4412——IIC总线概述

    目录 一.IIC总线概述 1.1IIC总线简介 1.2IIC总线通信过程 1.3IIC总线寻址方式 二.IIC总线信号实现 2.1起始信号与停止信号 2.2字节传送与应答 2.3同步信号 三.典型II ...

  2. stm32之IIC总线概述

    1.IIC通信协议定义 IIC通讯协议(Inter----Integrted Circuit)是由Phiips飞利浦公司开发的, 由于他引脚少,硬件实现简单,可拓展性强,不需要UASRT,CAN通讯协 ...

  3. IIC总线概述之时序(一)

    此文转载出处:https://www.cnblogs.com/BitArt/archive/2013/05/28/3103917.html 感谢博主的总结分享! AT24C02是由ATMEL公司提供的 ...

  4. Linux底层IIC 总线的理解、调用函数以及常见面试问题

    对 IIC 总线的理解.调用函数以及常见面试问题 一.IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, ...

  5. 对 IIC 总线的理解、调用函数以及常见面试问题

    一.IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线.一根是数据线SDA, ...

  6. Verilog实现IIC协议读写EEPROM

    在FPGA设计中,IIC协议是一个十分常见的协议,因为几乎所有的EEPROM都是用这个协议进行读写的,此外,一些特殊场合,也会用到此协议.这里我首先给出IIC协议的中文标准文档的下载链接(不要积分), ...

  7. 【基础知识】IIC(I2C)协议

    文章目录 概述 时序 起始信号 停止信号 数据信号 应答信号 总时序 IIC的地址 I2C读写寄存器 写寄存器 读寄存器 概述 IIC(I2C)是一个同步半双工串行通信协议,使用3根线即可连接 名称 ...

  8. Exynos_4412——IIC控制器和MPU6050

    目录 一.Exynos_4412下的IIC控制器 二.IIC寄存器 三.MPU6050原理 MPU6050 MPU6050的主要参数 MPU6050通信接口 MPU6050官方芯片手册 MPU6050 ...

  9. 汇编语言学习-寄存器(CPU工作原理)

    寄存器概述: 1,一个典型的CPU由运算器,控制器,寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系.外部总线实现CPU和主板上其它器件的联系. 2,8086CPU ...

最新文章

  1. 飞书,助力字节跳动高效成长的神秘引擎
  2. 深度学习和普通机器学习之间有何区别?
  3. TJA1050只能RX不能TX
  4. 降噪电路_拆解报告:Mobvoi出门问问 Ticpods ANC 真无线降噪耳机
  5. cmenu 隐藏子项中的一个子项_QML中的模型-视图-代理
  6. 这个回答让我错失offer!成功收获美团,小米安卓offer
  7. B2.Java代码查错
  8. 感悟----程序员需要养成的习惯
  9. 考试全程指导读书笔记1 -Chap1 信息系统基础
  10. 最近一到在混“智器粉丝团”,好久没写blog了~
  11. Lua 学习笔记(七)编译、执行外部代码块
  12. 三思笔记专区,即将闪亮登场
  13. 天正双击墙体不能编辑_入门必备!20个超实用天正CAD技巧,设计院高手都在收藏...
  14. fedora mysql安装教程,Fedora 14 上MySQL的安装及使用
  15. 使用js实现百度地图与高德地图经纬度的转换
  16. Django框架基础知识(面试题)
  17. 2017-2018年终总结书
  18. 事件(一)绑定与解除事件
  19. 关于在onclick事件传参
  20. php查询更新数据库数据类型,更新Update

热门文章

  1. Calendar日期类获取上月同期需求
  2. NB-IoT通信模组读取IMEI、ICCID、IMSI
  3. mysql 8.0优化配置_mysql 8.0.18 安装配置优化教程
  4. Web服务器(01)——介绍web服务器
  5. IIS通过共享文件夹发布aspx程序站点(部分为原创)
  6. DNS是如何进行域名解析的?
  7. 解决双硬盘下一个windows两个linux操作系统的grub引导问题
  8. el-checkbox-button 出现点击任意一个导致全选
  9. oracle.-904,ORACLE 11G ORA-904 while running select query(BUG)
  10. Tiled结合Unity做地图——Tiled2Unity