你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Nucleo-STM32WB09KE测评--IIC传感器读取

[复制链接]
短笛君 发布时间:2024-12-23 22:03

概述

在低功耗可穿戴应用中,IIC是一种常用的总线,电路简单,结构可靠,可以应对绝大多数场景,例如米家的蓝牙温湿度计等

本期测评围绕着低功耗可穿戴应用中的温湿度测量需求,使用瑞萨电子的HS3033作为传感器,使用STM32WB09K通过IIC读取传感器值。

HS3003是一种数字式IIC温湿度传感器,需要通过主机来发起测量请求然后传感器将温湿度上报

查看HS3003说明书,最小电路图如下所示。

image

==IIC请一定要链接上拉电阻 否则可能导致通信失败==

通过阅读手册我们可以知道 HS3033的iic地址为0x44,

image

IIC配置

我们直接选择BSP配置 勾选IIC其余的配置项CubeMX自动帮我们配置好

IIC我们使用400Khz高速IIC

image

传感器初始化与读写

对于传感器数据读写 手册上有详细的时序说明

image

在上电时刻 传感器默认处于休眠状态 需要向传感器发送一个0来唤醒

初始化代码如下

        HAL_GPIO_TogglePin(LD1_GPIO_PORT,LD1_PIN);
        HAL_I2C_Mem_Read(&hi2c1,HS3003_ADDR,0x00,I2C_MEMADD_SIZE_8BIT,temp,sizeof(temp),100);

对于不同精度的读取 转换时间是不同的 需要根据对应精度来设置不同的等待时间image

image

数据读取只需要按照如图所示 发送一个IIC地址 然后等待从机ACK信号 然后接受4字节数据,


    HAL_I2C_Mem_Read(&hi2c1,HS3003_ADDR,0x00,I2C_MEMADD_SIZE_8BIT,data,sizeof(data),100);
    value=data[0];
    value<<=8;
    value|=data[1];
    value<<=8;
    value|=data[2];
    value<<=8;
    value|=data[3];
    return value;

我们此时是将温湿度数据同时存储在一个4字节的变量中 方便我们后面进行数据处理

数据处理

读取回来的原始数据我们需要用手册中给的公式进行处理

image

    //value为之前读取的四字节数据
    Temp = (float)( (value& 0xFFFF) >> 2);//只要低十六位
    Temp = Temp*HS300X_TEMP_MULTY*165-40;//HS300X_TEMP_MULTY->0.00006163516(1/(2^14-1) )

    Humidity = (float)( (value>> 16) &0x3FFF );//只要高十六位,且最高2位不要
    Humidity = Humidity*HS300X_HUMD_MULTY*100;//HS300X_HUMD_MULTY->0.00006163516(1/(2^14-1) )

由此我们尽可以开始读取温湿度信息了

image

拓展应用

手册中提到了可以通过编程传感器内部的flash来进行传感器分辨率改变和设置ID号

image

要更改传感器分辨率或读取 ID 号,主机必须在芯片通电时将 HS300x 置于编程模式。上图显示了进入编程模式所需的命令顺序,必须在传感器通电后 10 毫秒内发送。主站必须发送 I2C 地址和一个写入位,后跟命令 0xA0|0x00|0x00。

此命令需要 120ms 来处理,之后 master 可以访问下表中列出的非易失性内存寄存器。所有这些 registers 都是 16 位宽的。要恢复正常的传感器操作并执行测量,主站必须发送 I2C 地址和写入位,然后发送命令:0x80|0x00|0x00。

修改测量分辨率

下图展示了3步修改测量分辨率的步骤

image

相对湿度和温度分辨率可以分别在 0x06 和 0x11 的寄存器中读取,也可以写入 0x46 或 0x51 的寄存器中。分辨率信息存储在这些寄存器的位 [11:10] 中,如表 10 所示。这些 registers 中的所有其他 bits 必须保持不变。因此,在写入新的分辨率设置之前,必须读取读寄存器的内容,并且只能更改写寄存器中的位 [11:10]。一旦更改位 [11:10] 以设置所需的分辨率,则必须将整个寄存器写回 HS300x 传感器。

收藏 评论0 发布时间:2024-12-23 22:03

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版