STM32L051使用HAL库操作实例(13)- 读取IAQ-CORE-C传感器实例

目录

一、前言

二、传感器参数

三、STM32CubeMX配置(本文使用的STM32CubeMX版本为6.1.2)例程使用模拟I2C进行数据读取

1.MCU选型

2.使能时钟

3.时钟配置

4.GPIO口配置

四、配置STM32CubeMX生成工程文件

[五、点击GENERATE CODE生成工程文件](#五、点击GENERATE CODE生成工程文件)

六、案例程序

1.I2C部分代码说明

2.串口重定义

3.硬件连接

七、IAQ-CORE-C参数读取图

1.初始上电预热阶段数据

2.预热后数据状态

一、前言

****iAQ‐core 传感器是 AMS 公司生产的室内空气质量检测模块,是一个可用于检测恶劣空气质量的低成本、超紧凑解决方案。 该模块采用微加工金属氧化物半导体 (MOS) 技术,以检测范围广泛的 VOC,并同时利用室内的 CO2 和TVOC 水平进行直接修正。检测原理为通过铂加热器和跨数字电极结构放置在约一微米薄的氮化硅膜上。通过加热来分析所处的空气中VOC的比例,转换为CO2的PPM值/TVOC的PPB值输出。

二、传感器参数

  • 工作电压:3.3±0.1V

  • 测量范围:相当于450-2000ppm的CO2,125-600ppb的TVOC

  • 输出信号:I2C

  • 高灵敏度,响应速度快

  • 测量周期:1ms(脉冲工作模式),11ms(持续工作模式)

  • 低功耗:在9mW(脉冲工作模式)到67mW(持续工作模式

三、STM32CubeMX配置(本文使用的STM32CubeMX版本为6.1.2)例程使用模拟I2C进行数据读取

思路:配置相关外设及使用模拟I2C进行数据读取,再将读取的数据通过串口打印出来;

1.MCU选型

本例程使用的为STM32L051C8T6型号

2.使能时钟

3.时钟配置

4.GPIO口配置

模拟I2C引脚设置

USART串口参数设置

​​​​​​​

四、配置STM32CubeMX生成工程文件

五、点击GENERATE CODE生成工程文件

六、案例程序

1.I2C部分代码说明

关于模拟的IIC时序代码可参考原子的例程,这里不再复述。

IAR-CORE-C模块的IIC通讯与传统的IIC设备读取存在一个特别的地方,再DATAsheet中有相关的说明,即在读取模块数据时,模块接收读取指令后会强制将SCL线上的电平拉低,待数据准备完成后再将SCL线电平释放为高电平。所以在读取模块数据时需要去判断SCL线的电平状态,再进行数据的读取处理,如果不等待直接去进行数据操作会导致无法读取到正确的数据;其它的读取时序与标准的IIC设备一致;

复制代码
uint8_t Emul_i2c_RdByte_clk_stretching(uint8_t rdata)
{
    uint8_t i=8 ,rec =0;
    Emul_SDA_H;
    SDA_IN(); //SDA 设置为输入
    for (i=0; i<8; i++)
    {
			Emul_SCL_L;
			delay_us(4);
			Emul_SCL_H;
			rec<<=1;
			if( FALSE == Emul_i2c_waitSCL())return FALSE; //等待 slave 释放 SCL 线,关键代码
			if (READ_SDA()) rec|=0x01;
			delay_us(4);
    }
		Emul_SCL_L;
		SDA_OUT();//用完输入 再配置为输出供下次使用
    if (!rdata)
        Emul_i2c_Ack();//发送 ACK
    else
        Emul_i2c_NAck(); //发送 NACK
    return rec;
}

IAQ-CORE-C数据结构

注意数据的第2byte位为模块状态位,模块初始上电都要经过约5分钟左右的预热期,预热期为0x10,经过预热后当状态字节位为0时,数据为有效数据。

模块数据的读取时序图可参考附件的IAQ-CORE-C的DATAsheet。

2.串口重定义

串口重定义主要参考原子部分,通过printf将数据打印到上位机可直观的查看数据;

3.硬件连接

注意引脚参数设置:不加上拉电阻是用 PP 模式,加了上拉电阻用 OD 模式。

七、IAQ-CORE-C参数读取图

1.初始上电预热阶段数据

2.预热后数据状态

​​​​​​​​​​​​​​

相关推荐
易享电子6 小时前
基于单片机步进电机控制电机正反转加减速系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·51单片机·proteus·智能家居
易享电子7 小时前
基于单片机空调温度控制测温ds18b20系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·51单片机·proteus·智能家居
点灯小铭7 小时前
基于51单片机汽车自动照明灯超声波光敏远近光灯设计
单片机·嵌入式硬件·汽车·毕业设计·51单片机·课程设计
小刘爱玩单片机8 小时前
【stm32简单外设篇】-4×4 薄膜键盘
stm32·单片机·计算机外设
小白嘎嘎8 小时前
ESP8266:Arduino学习
单片机·嵌入式硬件
源远流长jerry9 小时前
STM32之Systick与基础定时器
c语言·stm32·单片机·嵌入式硬件
爱睡觉的王宇昊11 小时前
GD32和STM32的区别在哪里?
stm32·单片机·嵌入式硬件
代码总长两年半13 小时前
STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---AT固件篇(二)
stm32·单片机·物联网
点灯小铭14 小时前
基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测
stm32·单片机·嵌入式硬件·毕业设计·课程设计
代码总长两年半16 小时前
STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---MQTT篇(三)
stm32·单片机·物联网