SHT20 IIC 寄存器概述
** 注:部分内容来自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 寄存器概述的更多相关文章
- SHT20 IIC总线驱动概述
SHT20温湿度传感器使用iic总线的驱动方式,以下资料参考SHT20 datasheet总结 1.IIC总线 Start信号 IIC总线的起始信号以SDA由高电平变为低电平,等待5us以上,再由SC ...
- 对 IIC 总线的理解、调用函数以及常见面试问题
一.IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线.一根是数据线SDA, ...
- 基于STM8的IIC协议--实例篇--时钟模块(DS3231)读取
1. 综述 由上篇博客可知道IIC协议如何用代码实现,本篇博客就不涉及协议内容,只讲解如何使用. 本次的实验传感为:DS3231(时钟模块),对于时钟模块的具体信息我也就不多介绍,大家可以自行度娘,具 ...
- s3c2440的IIC控制
在tq2440和mini2440上都连接着EEPROM 它们作用也不过測试I2C总线能否用. 当中在mini2440上EEPROM型号是 AT24C08,在tq2440上这个型号是 AT24C02A. ...
- IIC挂死问题解决过程
0.环境:arm CPU 带有IIC控制器作为slave端,带有调试串口. 1.bug表现:IIC slave 在系统启动后概率挂死,导致master无法detect到slave. 猜测1:认为IIC ...
- S3C2440A特殊寄存器
S3C2440A特殊寄存器 特殊寄存器有: 输入输出端口 存储器控制器 NANDFLASH 看门狗定时器 时钟和电源管理 PWM定时器 UART USB设备 中断控制器 DMA LCD控制器 RTC ...
- iCamera App Kit 使用说明
一.概述 1.前言 iCamera是层层惊涛设计室推出的一款轻量级的摄像头开发调试工具,该工具可以用于市面上绝大多数摄像头的配置.调试.图像采集. iCamera主要作为摄像头开发调试工具,暂时不针对 ...
- HDMI之CEC DDC学习笔记(可能有误)
1 HDMI的音视频通路,有待学习: 2 DDC通路,大致是个IIC接口,读取上游器件的EDID或者E-EDID数据: EDID的前128字节数据格式如下:(可能有不同版本,格式可能有区别)
- DOS程序员手册(九)
第14章参考手册概述 本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ...
随机推荐
- Coding Contest(费用流变形题,double)
Coding Contest http://acm.hdu.edu.cn/showproblem.php?pid=5988 Time Limit: 2000/1000 MS (Java/Others) ...
- UVa 11988 Broken Keyboard (a.k.a. Beiju Text)(链表)
You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem wi ...
- 获取APP的启动图 -Launch Image
http://adad184.com/2015/10/15/tips-access-current-launch-image/
- mysql5.5以上开启慢查询
在my.ini配置文件中添加: [mysqld] #开启慢查询 slow_query_log = on #慢查询时间 long_query_time = 0.5 #记录没有使用索引的查询 log_qu ...
- linux系统命令笔记
一.linux系统目录 /bin 系统命令目录 /dev 设备目录 /home 每个系统用户在home下都有一个目录, 每个用户登录到系统后会自动登录到这个目录下, root用户会在/root文件夹下 ...
- IIS支持IPA、APK文件的下载
IIS里MIME类型中默认是没有ipa,apk文件的,所以无法直接通过网络下载. 解决方法如下: 1.打开IIS信息服务管理器,选中自已的网站,在右边面板中找到MIME类型. 2.双击打开,点击右 ...
- MVC仓储使用join
代码: var result = from mpc in this.Context.Set<Domain.S_MENU_PURVIEWCODE>() join menu in this.C ...
- DOMNodeInserted监听div内容改变
$('.cw-icon .ci-count').on('DOMNodeInserted',function(){ $(".settleup-content .cont_loading&quo ...
- tomcat内存溢出问题解决思路
.修改启动时内存参数.并指定JVM时区 (在windows server 下时间少了8个小时) 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数: ...
- C语言跳表(skiplist)实现
一.简介 跳表(skiplist)是一个非常优秀的数据结构,实现简单,插入.删除.查找的复杂度均为O(logN).LevelDB的核心数据结构是用跳表实现的,redis的sorted set数据结构也 ...