STM32L051使用HAL庫操作實例(13)- 讀取IAQ-CORE-C傳感器實例

目錄

一、前言

二、傳感器參數

三、STM32CubeMX配置(本文使用的STM32CubeMX版本為6.1.2)例程使用模擬I2C進行數據讀取

1.MCU選型

2.使能時鐘

3.時鐘配置

4.GPIO口配置

四、配置STM32CubeMX生成工程文件

五、點擊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();//發送 ACKelseEmul_i2c_NAck(); //發送 NACKreturn rec;
}

IAQ-CORE-C數據結構

注意數據的第2byte位為模塊狀態位,模塊初始上電都要經過約5分鐘左右的預熱期,預熱期為0x10,經過預熱后當狀態字節位為0時,數據為有效數據。

模塊數據的讀取時序圖可參考附件的IAQ-CORE-C的DATAsheet。

2.串口重定義

串口重定義主要參考原子部分,通過printf將數據打印到上位機可直觀的查看數據;

3.硬件連接

注意引腳參數設置:不加上拉電阻是用 PP 模式,加了上拉電阻用 OD 模式。

七、IAQ-CORE-C參數讀取圖

1.初始上電預熱階段數據

2.預熱后數據狀態

??????????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209794.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubersphere應用【二】Docker安裝

一、Docker安裝 1.下載Docker安裝包 【地址】Index of linux/static/stable/x86_64/ 2.上傳至服務器 # 解壓文件 tar -xvf docker-20.10.10.tgz# 將docker 目錄中的所有文件復制至/usr/bin/目錄下 cp docker/* /usr/bin 3.配置docker.service文件 vim /usr/lib/systemd/sy…

arm平臺編譯so文件回顧

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、幾個點二、回顧過程 1.上來就執行Makefile2.編譯第三方開源庫.a文件 2.1 build.sh腳本2.2 Makefile3.最終編譯三、其它知識點總結 前言 提示&#xff1a;這…

MSSQL存儲過程的功能和用法(簡明扼要)

官方文檔 存儲過程&#xff08;數據庫引擎&#xff09; - SQL Server | Microsoft Learn Transact-SQL 參考&#xff08;數據庫引擎&#xff09; - SQL Server | Microsoft Learn 定義 存儲過程可以用編程語言的方法來類比&#xff0c;有輸入輸出。區別是其使用SQL表達業務…

spring 單元測試 Junit

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

解決打印機超出字節之使用PHP拆分字符串并保留分隔符

在開發過程中&#xff0c;我們經常需要將一個長字符串拆分成多個片段&#xff0c;并且保留原始字符串中的分隔符。在本篇教程中&#xff0c;我們將使用PHP編寫一個函數來實現這個功能。 首先&#xff0c;讓我們來看一下我們要解決的問題。假設我們有一個長字符串&#xff0c;我…

pywinrm 解析輸出為 dict 格式 字典格式

s winrm.Session(host, auth(username, password))task_folder \RPA\\ # 運行 schtasks 命令來列出任務計劃程序 command schtasks /query /fo csv # command fschtasks /query /fo csv /tn {task_folder} # command fschtasks /query /fo csv /tn "{task_folder}\\…

mapbox使用v3版本,v2的樣式切換不同時間段

創建DayAndNight.js /*** 使用方式* const dayNight new DayAndNight({ map: map // map 地圖對象}) * 修改類型* dayNight.setConfigProperty(value)*/ class DayAndNight {constructor (sdMap) {this.map sdMap.mapthis.initStyle()}// 初始化時添加必要樣式initStyle () {…

刪除計算機用戶時拒絕訪問權限,c盤為什么拒絕訪問 刪除c盤文件需要管理員權限怎么辦...

轉載&#xff1a;??????刪除計算機用戶時拒絕訪問權限,c盤為什么拒絕訪問 刪除c盤文件需要管理員權限怎么辦...-CSDN博客 c盤是電腦中的關鍵位置&#xff0c;存儲著很多系統重要文件&#xff0c;如果電腦出問題一般就是c盤中的文件異常&#xff0c;近日有小伙伴出現這樣…

前端知識筆記(四十一)———nodejs發起http或https請求

http請求 const express require(express) const http require(http)const app express()const loginConfig (token) > {return {hostname: api.test.com,port: 80,path: /test?access_token${token},method: GET} }app.get(/login, (req, res) > {const options …

c++通過serial庫進行上下位機通信

?編輯 風紊 現役大學牲&#xff0c;半退休robomaster視覺隊員 寫在前面 本文章主要介紹的是如何通過開源的serial庫和虛擬串口實現上位機和下位機通信。 需求 假設下位機有這樣一個數據報發送給上位機 struct DataRecv {char start s;TeamColor color TeamColor::Blu…

Premiere Pro 2024 新功能有哪些?視頻剪輯軟件PR2024更新內容及問題修復

PR軟件“基于文本的編輯”中的填充詞檢測與批量刪除功能 “基于文本的編輯”可讓您檢測“呃”和“嗯”填充詞并批量刪除它們&#xff0c;從而使您的轉錄文本更加準確。就像處理停頓一樣&#xff0c;您可以單擊填充詞并將其從序列轉錄文本中刪除。填充詞與語言無關&#xff0c;…

STM32CubeIDE(CUBE-MX hal庫)----RTC時鐘,時鐘實時顯示

系列文章目錄 STM32CubeIDE(CUBE-MX hal庫)----初嘗點亮小燈 STM32CubeIDE(CUBE-MX hal庫)----按鍵控制 STM32CubeIDE(CUBE-MX hal庫)----串口通信 STM32CubeIDE(CUBE-MX hal庫)----定時器 STM32CubeIDE(CUBE-MX hal庫)----藍牙模塊HC-05&#xff08;詳細配置&#xff09; 前言…

【無標題】安裝環境

這里寫目錄標題 清華鏡像加速 安裝cuda11.3 PyTorch 1.10.1https://pytorch.org/get-started/previous-versions/[如果沒有可以點Previous pyTorch Versions&#xff0c;這里面有更多的更早的版本](https://pytorch.org/get-started/locally/) 復制非空文件夾cp: -r not specif…

傳染病傳播速度

題干 R0值是基本傳染數的簡稱&#xff0c;指的是在沒有采取任何干預措施的情況下&#xff0c;平均每位感染者在傳染期內使易感者個體致病的數量。數字越大說明傳播能力越強&#xff0c;控制難度越大。一個人傳染的人的數量可以用冪運算來計算。假設奧密克戎的R0為10&#xff0…

《LeetCode力扣練習》代碼隨想錄——字符串(翻轉字符串里的單詞---Java)

《LeetCode力扣練習》代碼隨想錄——字符串&#xff08;翻轉字符串里的單詞—Java&#xff09; 刷題思路來源于 代碼隨想錄 151. 反轉字符串中的單詞 雙指針 class Solution {public String reverseWords(String s) {char[] results.toCharArray();resultremoveSpace(result);r…

2023-12-05 Qt學習總結2

點擊 <C 語言編程核心突破> 快速C語言入門 Qt學習總結 前言五 Hello Qt!六 Qt控件和事件七 Qt信號和槽八 Qt自定義信號和槽總結 前言 要解決問題: 學習qt最核心知識, 多一個都不學. 五 Hello Qt! 現在我們已經有了一個空窗口工程, 傳統上, 我們要實現一個"Hello …

(三潮來襲)探尋2023年科技變革潮流與2024年前瞻展望

2023年對于IT行業來說是一個動蕩而又充滿變革的一年。隨著世界逐漸走出前幾年的挑戰&#xff0c;企業逐漸復蘇&#xff0c;但這個行業仍然在經歷著激烈的變革。在這個時候&#xff0c;我們看到了一些引人注目的技術變化和未來的趨勢。 一、2023年回顧 關鍵詞&#xff1a;Chat…

構建Servlet項目流程

第一步&#xff1a;創建maven項目 部分基礎 依賴的模板基礎部分如下 maven-archetype-quickstart: 這是最基本的Archetype&#xff0c;它創建一個包含簡單Java類和單元測試的項目。 maven-archetype-webapp: 這個Archetype創建一個簡單的Java web應用&#xff0c;包括一個serv…

【C++】算法庫(批量操作、搜索操作)

C算法庫 文章目錄 C算法庫批量操作for_eachfor_each_n 搜索操作all_of ,any_of ,none_offind, find_if, find_if_notfind_endstd::find_first_ofadjacent_findcount, count_ifequalsearchsearch_n 算法庫提供大量用途的函數&#xff08;例如查找、排序、計數、操作&#xff09;…

微信小程序 - PC端選擇ZIP文件

微信小程序 - PC端選擇文件 分享代碼片段場景分析解決思路附魔腳本chooseMediaZip 選擇附魔后的ZIP文件相關方法測試方法 參考資料 分享代碼片段 不想聽廢話的&#xff0c;直接看代碼。 https://developers.weixin.qq.com/s/UL9aojmn7iNU 場景分析 如果你的微信小程序需要選…