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.预热后数据状态

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

相关推荐
点灯小铭24 分钟前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
TEC_INO29 分钟前
STM32_9:I2C_DHT11_OLED项目
stm32·单片机·嵌入式硬件
__万波__31 分钟前
STM32基于HAL 库开发包创建新的工程-编译-烧录
stm32·单片机·嵌入式硬件
曾浩轩1 小时前
跟着江协科技学STM32之4-5OLED模块教程OLED显示原理
科技·stm32·单片机·嵌入式硬件·学习
BreezeJuvenile1 小时前
ADC_案例练习:独立模式多通道采集
stm32·单片机·adc·多通道采集·dma辅助
代码游侠1 小时前
学习笔记——HC-SR04 超声波测距传感器
开发语言·笔记·嵌入式硬件·学习
Joshua-a1 小时前
高云FPGA在线调试/逻辑分析仪简要使用流程
嵌入式硬件·fpga开发·高云
国科安芯2 小时前
高轨航天器抗辐照MCU选型约束分析
单片机·嵌入式硬件·性能优化·机器人·安全性测试
CS Beginner2 小时前
【单片机】嵌入式显示屏开发框架:QT、SDL、LVGL 深度解析
单片机·嵌入式硬件·qt
YouEmbedded2 小时前
解码从架构到嵌套向量中断控制器(NVIC)
stm32·软件架构·mcu中断·exti外设·启动文件分析