《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電子元件 > 業(yè)界動(dòng)態(tài) > 教程:如何使用STM32L4探索套件中提供的傳感器進(jìn)行測(cè)量

教程:如何使用STM32L4探索套件中提供的傳感器進(jìn)行測(cè)量

2023-01-31
來源:意法半導(dǎo)體
關(guān)鍵詞: 測(cè)量 STM32 傳感器

  目標(biāo)描述

  本教程的目的是解釋如何使用 STM32L4 探索套件中提供的傳感器進(jìn)行測(cè)量。逐步描述溫度傳感器的配置。

  完成本教程后,您將能夠使用 B-L475E-IOT01A 板上可用的傳感器收集值。

  本教程的附錄提供了有關(guān)如何將 AC6 示例移植到 STM32CubeIDE 的指南。

  先決條件

  你已經(jīng)通過:

  Step1:工具安裝和首次測(cè)試

  Step3:串口及新板介紹

  硬件

  STM32L4 探索套件物聯(lián)網(wǎng)節(jié)點(diǎn)[1] (B-L475E-IOT01A)

  USB 數(shù)據(jù)線 Type-A 轉(zhuǎn) Micro-B

  文學(xué)

  用于物聯(lián)網(wǎng)節(jié)點(diǎn)的UM2153 探索套件,與 STM32L4 的多通道通信

  UM1884 STM32L4/L4+ HAL及底層驅(qū)動(dòng)說明

  UM1859開始使用 STM32Cube 的 X-CUBE-MEMS1 運(yùn)動(dòng) MEMS 和環(huán)境傳感器軟件擴(kuò)展

  UM2579從 System Workbench 到 STM32CubeIDE 的遷移指南

  STM32L4 探索套件物聯(lián)網(wǎng)節(jié)點(diǎn)入門

  內(nèi)容↑

 ?。垭[藏]

  1個(gè)B-L475E-IOT01A 的傳感器使用

  1.1硬件說明

  1.2示例:使用 HTS221 傳感器獲取溫度值并將其顯示在終端上

  1.2.1使用 STM32CubeMX 創(chuàng)建工作項(xiàng)目

  1.2.2將 BSP 驅(qū)動(dòng)程序復(fù)制到您的項(xiàng)目

  1.2.3支持 STM32CubeIDE 工作區(qū)中的 BSP

  1.2.4更新包含路徑

  1.2.5更新源文件

  1.2.6編譯并運(yùn)行示例

  2個(gè)附錄:將一個(gè)AC6示例移植到STM32CubeIDE

  2.1硬件說明

  2.2示例:使用 HTS221 傳感器獲取溫度值并顯示在終端上(從 AC6 移植到 STM32CubeIDE)

  2.2.1硬件設(shè)置

  2.2.2示例詳細(xì)信息

  2.2.3將示例移植到STM32CubeIDE

  2.2.4編譯并運(yùn)行示例

  3個(gè)參考

  1傳感器與 B-L475E-IOT01A 的使用↑

  1.1硬件說明↑

  STM32L4 探索套件物聯(lián)網(wǎng)節(jié)點(diǎn) (B-L475E-IOT01A) 中可用的主要傳感器有:

  用于相對(duì)濕度和溫度的電容式數(shù)字傳感器 (HTS221)

  260-1260 hPa 絕對(duì)數(shù)字輸出氣壓計(jì) (LPS22HB)

  3D 加速度計(jì)和 3D 陀螺儀 (LSM6DSL)

  高性能 3 軸磁力計(jì) (LIS3MDL)。

135.JPG

  1.2示例:使用HTS221傳感器獲取溫度值并顯示在終端上↑

  本節(jié)的目的是逐步說明如何與 HTS221 傳感器連接以獲取溫度值并將其顯示在終端上。

  1.2.1使用STM32CubeMX創(chuàng)建工作項(xiàng)目↑

  起點(diǎn)是標(biāo)題為B-L475E-IOT01A 上的 UART I/F 簡(jiǎn)介的第 3 步教程中描述的使用 STM32CubeMX 生成的項(xiàng)目。

  按照此處描述的步驟操作并調(diào)用生成的項(xiàng)目 L4_IOT_Sensors。

  1.2.2復(fù)制BSP驅(qū)動(dòng)到你的項(xiàng)目中↑

  BSP(板級(jí)支持包)驅(qū)動(dòng)程序在STM32CubeL4包中提供。這提供了與電路板的硬件組件相對(duì)應(yīng)的 API。STM32CubeL4 軟件包的最新版本默認(rèn)下載到 STM32CubeMX 存儲(chǔ)庫 ( C:Usersuser_nameSTM32CubeRepositorySTM32Cube_FW_L4_Vx.xx.x )。

  BSP在樹中的位置和內(nèi)容:

134.JPG

  信息

  STM32CubeL4 使用的版本是 1.11.0,但它會(huì)隨著時(shí)間的推移而增加。

  以下是將 BSP 驅(qū)動(dòng)程序復(fù)制到您的項(xiàng)目中的步驟:

  復(fù)制STM32CubeL4/Drivers/BSP/B-L475E-IOT01文件夾

  在生成的項(xiàng)目中,創(chuàng)建一個(gè)文件夾L4_IOT_Sensors/Drivers/BSP。將復(fù)制的文件夾粘貼到那里。

  復(fù)制STM32CubeL4/Drivers/BSP/Components文件夾。將其粘貼到L4_IOT_Sensors/Drivers/BSP/Components下。

  可選清理工作目錄:由于僅使用 HTS221 溫度傳感器,可能會(huì)刪除已復(fù)制到工作目錄的其他一些文件和文件夾

  在 L4_IOT_SensorsDriversBSPB-L475E-IOT01 下,僅保留以下文件:

  在L4_IOT_SensorsDriversBSPComponents下,僅保留以下文件夾:

  1.2.3 STM32CubeIDE工作區(qū)支持BSP ↑

  復(fù)制完成后,添加的文件夾會(huì)自動(dòng)出現(xiàn)在STM32CubeIDE工作區(qū)中:

133.JPG

  1.2.4更新包含路徑↑

  更新路徑以支持新的頭文件:

  從Project Explorer透視圖中選擇相關(guān)項(xiàng)目:

132.JPG

  從“項(xiàng)目”菜單或“文件”菜單,轉(zhuǎn)到“屬性”》“C/C++ 構(gòu)建”》“設(shè)置”》“工具設(shè)置”》“MCU GCC 編譯器”》“包含路徑”

  單擊以包含新路徑

  添加。。/Drivers/BSP/B-L475E-IOT01和。。/Drivers/BSP/Components/hts221路徑

  以下屏幕截圖總結(jié)了要遵循的步驟:

131.JPG

  1.2.5更新源文件↑

  唯一要修改的文件是main.c,如下所示:

  包含頭文件:stm32l475e_iot01.h、stm32l475e_iot01_tsensor.h和math.h

  /* 用戶代碼開始包括 */ 《 br 》 #include “stm32l475e_iot01.h” #include “stm32l475e_iot01_tsensor.h” #include 《數(shù)學(xué)。h》 /* 用戶代碼結(jié)束包括 */

  添加私有值以用于溫度值和終端上顯示的消息:

  /* USER CODE BEGIN PV */ /* 私有變量 -------------------------------------- --------------*/ float temp_value = 0 ; // 測(cè)量溫度值 char str_tmp [ 100 ] = “” ; // 顯示溫度值的格式化消息 uint8_t msg1 [] = “****** Temperature values measurement ****** nnr ” ; uint8_t msg2 [] = “=====》 初始化溫度傳感器 HTS221 rn ” ; uint8_t msg3 [] = “=====》 溫度傳感器 HTS221 已初始化rn ” ; /* 用戶代碼結(jié)束 PV */

  在終端上顯示消息并初始化 HTS221 溫度傳感器:

  /* 用戶代碼開始 2 */ HAL_UART_Transmit ( & huart1 , msg1 , sizeof ( msg1 ), 1000 ); HAL_UART_Transmit ( & huart1 , msg2 , sizeof ( msg2 ), 1000 ); BSP_TSENSOR_Init (); HAL_UART_Transmit ( & huart1 , msg3 , sizeof ( msg3 ), 1000 ); /* 用戶代碼結(jié)束 2 */ /

  在while(1)循環(huán)中,讀取溫度值,格式化,然后在終端顯示帶有測(cè)量值的信息:

  /* 用戶代碼開始 3 */ temp_value = BSP_TSENSOR_ReadTemp (); int tmpInt1 = temp_value ; float tmpFrac = temp_value - tmpInt1 ; int tmpInt2 = trunc ( tmpFrac * 100 ); snprintf ( str_tmp , 100 , “ TEMPERATURE = %d.%02d nr ” , tmpInt1 , tmpInt2 ); HAL_UART_Transmit ( & huart1 ,( uint8_t * ) str_tmp , sizeof ( str_tmp ), 1000 ); HAL_延遲(1000 ); /* 用戶代碼結(jié)束 3 */

  25px-Info_white.png

  信息

  注意在正確的用戶代碼部分進(jìn)行更新,以避免使用新的 STM32CubeMX 代碼生成覆蓋它們。

  1.2.6編譯運(yùn)行示例↑

  點(diǎn)擊Build按鈕編譯項(xiàng)目

  點(diǎn)擊調(diào)試按鈕運(yùn)行軟件

  打開控制臺(tái)模擬器,例如 TeraTerm [2]。要配置控制臺(tái)波特率,請(qǐng)選擇數(shù)據(jù)位:8 并單擊確定。您的 PC 上的端口名稱可能不同

  STM32CubeIDE 打開調(diào)試透視圖。點(diǎn)擊Resume按鈕執(zhí)行代碼

  TeraTerm [2]在測(cè)得的溫度值之前顯示初始化消息:

130.JPG

  現(xiàn)在您可以:

  構(gòu)建您自己的項(xiàng)目以使用嵌入在 B-L475E-IOT01A 上的傳感器測(cè)量溫度值

  將 BSP 組件添加到 STM32CubeMx 生成的項(xiàng)目中

  將該板的用途擴(kuò)展到 HTS221 以外的傳感器,以進(jìn)行環(huán)境測(cè)量。



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。