zoukankan      html  css  js  c++  java
  • 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
    }
    
  • 相关阅读:
    Jmeter(十五)正则表达式提取参数
    jmeter学习笔记(十三)debug调试工具
    jmeter学习笔记(十二)函数
    港澳台手机号正则表达式,区号+手机
    Mac 模拟弱网测试
    Mac下安装fiddler
    Appium基础总结1:获取包名和Activity
    selenium常用资源的阿里镜像链接(转)
    JMETER数据库MYSQL--初入门
    JMETER接口测试-小试牛刀(二)
  • 原文地址:https://www.cnblogs.com/memorypro/p/9548010.html
Copyright © 2011-2022 走看看