** 注:部分内容来自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 IIC 寄存器概述的更多相关文章

  1. SHT20 IIC总线驱动概述

    SHT20温湿度传感器使用iic总线的驱动方式,以下资料参考SHT20 datasheet总结 1.IIC总线 Start信号 IIC总线的起始信号以SDA由高电平变为低电平,等待5us以上,再由SC ...

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

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

  3. 基于STM8的IIC协议--实例篇--时钟模块(DS3231)读取

    1. 综述 由上篇博客可知道IIC协议如何用代码实现,本篇博客就不涉及协议内容,只讲解如何使用. 本次的实验传感为:DS3231(时钟模块),对于时钟模块的具体信息我也就不多介绍,大家可以自行度娘,具 ...

  4. s3c2440的IIC控制

    在tq2440和mini2440上都连接着EEPROM 它们作用也不过測试I2C总线能否用. 当中在mini2440上EEPROM型号是 AT24C08,在tq2440上这个型号是 AT24C02A. ...

  5. IIC挂死问题解决过程

    0.环境:arm CPU 带有IIC控制器作为slave端,带有调试串口. 1.bug表现:IIC slave 在系统启动后概率挂死,导致master无法detect到slave. 猜测1:认为IIC ...

  6. S3C2440A特殊寄存器

    S3C2440A特殊寄存器 特殊寄存器有: 输入输出端口 存储器控制器 NANDFLASH 看门狗定时器 时钟和电源管理 PWM定时器 UART USB设备 中断控制器 DMA LCD控制器 RTC ...

  7. iCamera App Kit 使用说明

    一.概述 1.前言 iCamera是层层惊涛设计室推出的一款轻量级的摄像头开发调试工具,该工具可以用于市面上绝大多数摄像头的配置.调试.图像采集. iCamera主要作为摄像头开发调试工具,暂时不针对 ...

  8. HDMI之CEC DDC学习笔记(可能有误)

    1 HDMI的音视频通路,有待学习: 2 DDC通路,大致是个IIC接口,读取上游器件的EDID或者E-EDID数据: EDID的前128字节数据格式如下:(可能有不同版本,格式可能有区别)

  9. DOS程序员手册(九)

    第14章参考手册概述     本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ...

随机推荐

  1. TZOJ 1242 求出前m大的数(预处理)

    描述 给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=10000)并按从大到小的顺序排列. 输入 ...

  2. 【校招面试 之 C/C++】第10题 C++不在构造函数和析构函数中调用虚函数

    1.不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化.在构造函数完成之前,被构造的对象被认为“未完全生成”.当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数, ...

  3. pyhon模块之日志模块

    #Auther Bob#--*--coding:utf-8--*-- import logging #python一共有5个级别的日志,debug.info.warning.error.critica ...

  4. 阅读笔记-A Message To Garcia

    A Message To Garcia 主动性:世界会给你以厚报,既有金钱也有荣誉,只要你具备这样一种品质,那就是主动.就是不用别人告诉你,你就能出色的完成工作. 人类社会的最基本的行为法则----互 ...

  5. EF6.0新特性-DbCommandInterceptor实现非SQL端读写分离

    前几天看了一个基于sqlserver的负载均衡与读写分离的软件Moebius,实现的方式还是不错的,这使得用sqlserver数据库的同学时有机会对数据库进行更有效的优化了

  6. Asia Stock Exchanges[z]

    Asia Stock Exchanges July 7, 2009 This article is to summarise the trading rules of some Asia stocke ...

  7. Linux动态共享库

    Linux操作系统上面的动态共享库大致分为三类:   一.操作系统级别的共享库和基础的系统工具库 libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/us ...

  8. 关于UI设计的一些工作了解

    关于UI设计相信大家在刚接触UI的时候都不太了解,我来说说我在一段学习时间后的了解. UI从工作内容上来说分为3大类,即研究工具,研究人与界面的关系,研究人与之相应. ​ UI设计师的职能一个是图形设 ...

  9. [远程] windows 2008 server设置了共享文件夹,并且共享给了everyone,但是还是无法访问,怎么解决呢?

    还需要设置另外一个地方,将用户加到MSAppAccess这个组里去

  10. JavaScript中的 prototype 和 constructor

    prototype属性  任何js函数都可以用作构造函数, 而构造函数需要用到prototype属性, 因此, 每个js函数F(除了ES5的Function.bind()方法返回的函数外) 都自动拥有 ...