STMCU小助手
发布时间:2022-4-9 22:28
|
(1)传感器实物1 _$ S) ^* I2 F/ W& p( d 5 W5 N/ V& w! {0 s7 w \' o9 U 实物图:7 D1 L* A: m N* t6 p
模块图:3 H; v- O/ H1 z; w; j- O & V. M0 b! S: W6 r& y' i. V
3 d4 l. X" G6 l- ~' e8 d3 p (2)传感器参数 SGP30是一款单一芯片上具有多个传感元件的金属氧化物室内气体传感器,内集成4个气体传感元件,具有完全校准的空气质量输出信号,主要是对空气质量进行检测。可以输出:7 O) ~1 [6 o9 u5 ]; P6 Z TVOC(Total Volatile Organic Compounds,总挥发性有机物),量程为0~60000ppb; CO2浓度,量程400~60000ppm。 , R5 y+ Q# I. x3 U
另外注意: SGP30模块上电需要一定时间初始化,在初始化阶段读取的CO2浓度为400ppm,TVOC为0ppd且恒定不变。因此上电后一直读直到TVOC不为0并且CO2不为400,SGP30模块才初始化完成。" E2 I3 [9 s6 R 初始化完成后刚开始读出数据会波动比较大,属于正常现象,一段时间后会逐渐趋于稳定。7 b4 Y5 h$ M. n: o 气体类传感器比较容易受环境影响,测量数据出现波动是正常的,可以添加滤波函数进行滤波。 (3)传感器接口5 y' D- y, E2 [( Y8 G& _% h" o! W SGP30传感器使用的是IIC接口,主要注意的是IIC的频率是最大不超过400kHz: 7 g" l8 D# I; f2 |
2 ~5 |6 t0 K, \$ _! R" t IIC从机地址是0X58,由于地址只用到了7bit,最高位未使用,最低位为判断是读还是写,为0是读,为1是写,所以: 对于写SGP30时候,地址为(0X58 << 1) = 0XB0 对于读SGP30时候,地址为((0X58 << 1)) | 0X01 = 0XB1/ V8 I" \4 R# e 7 U/ ?( W/ _, x" n0 h$ L SGP30的命令都是双字节的,先发高位,有如下命令:
9 e4 c9 w9 T3 v6 T. o4 `/ }% T 以初始化SGP30命令(0X2003)为例,IIC发送的数据为:0XB0、0X20、0X03& }* f* z0 m4 V0 U: |/ U! N 除去以上命令外,还有两个命令,一个是软件复位、另一个是读取串号。
' A4 ~* q2 ]8 D' C8 J0 d' | (4)STM32工程配置- |! ^: `/ u/ K7 j 这里我使用的是STM32F103RBT6这款单片机,主频72M,使用IIC接口2。 3 ]0 J7 F* t$ j9 \3 c; [
" R2 e. V# t; }
0 m8 }& y/ b% P' N5 ^$ \. v - q0 H4 v# Z" {; E- i (5)代码编写- ^, f* J, g) S S k. W$ O 代码中我实现了硬件IIC和软件IIC我都实现了,通过宏定义切换:8 \; e4 _' K" C Q! X: g% t 1 z2 l$ f; N# A/ ?3 h
移植时候主要是实现这两个IIC的读写函数:4 E0 X' O. G5 ?( @4 I8 J
4 a# o7 F* t! \. C" ^' ~' g 软件复位:9 D+ ~1 i& J/ W* g% h& b1 w 7 O0 h# ^, I2 j) S5 y) f9 ^
$ f4 \, Y+ H/ \* b/ v 模块初始化:/ W. T X9 x" Z1 I8 v- r * j2 J* B0 [) N4 Z# E, v
读取TVOC和CO2:$ S# H8 ]' k( z7 S6 a$ ?
读取串号:# f' K) I3 j. i, b6 H/ c0 Z0 I 4 f! s7 E; f% J/ ?* m
/ ~/ E4 ^# i7 g! [( z ends… ' G3 v# e( ~2 ^5 C6 a# _$ T* B6 f / T- \, ~/ o, \2 o. l* @ * ]2 u: \7 _* ^# f |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版