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函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ...
随机推荐
- chest
chest - 必应词典 美[tʃest]英[tʃest] n.胸部:胸膛:有…胸的:胸部…的 网络胸围:箱子:胸腔 变形复数:chests:
- C#操作Excel 单元格的格式处理[xyytIT]
一. C# 操作 Excel 单元格自动填充,居中对齐,字体颜色等格式设置: Excel.Range titleRange = worksheet.get_Range(worksheet.Cells[ ...
- 转)ubuntu安装clang
主要参考:http://blog.csdn.net/firebird321/article/details/48528569 1.下载源码 去http://llvm.org/releases/down ...
- ftp使用(图文详解)
41,准备: FileZilla_Server-v0.9.41.rar 2.安装,可以全部默认下一步 这里装在了E盘 3安装成功添加用户 添加用户名yanan 选择share folders选择要共享 ...
- C++ 输入cin 和输出cout
C++输入cout与输出cin 输入和输出并不是C++语言中的正式组成成分.C和C++本身都没有为输入和输出提供专门的语句结构.输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的. ...
- Linux中chown、chmod、chgrp
1.chgrp (转变文件所属用户组) chgrp(转变文件所属用户组)change group chgrp 用户组 文件名 ###便是这个格了.若是整个目次下的都改,则加-R参数用于递归. 如:ch ...
- ROS Learning-009 beginner_Tutorials ROS服务 和 ROS参数
ROS Indigo beginner_Tutorials-08 ROS服务 和 ROS参数 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...
- maven的下载
1.maven的下载地址:http://maven.apache.org/download.cgi.下载3.3.9版本(在选择下载的版本是要与JDK契合). 2.下载之后,解压的文件放的位置尽量不要有 ...
- oracle使用 merge 更新或插入数据
OracleCC++C# 总结下.使用merge比传统的先判断再选择插入或更新快很多. 1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行, ...
- [Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?
我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html: <div id="mailEditorDiv" style=" ...