目標描述
本教程的目的是解釋如何使用 STM32L4 探索套件中提供的傳感器進行測量。逐步描述溫度傳感器的配置。
完成本教程后,您將能夠使用 B-L475E-IOT01A 板上可用的傳感器收集值。
本教程的附錄提供了有關如何將 AC6 示例移植到 STM32CubeIDE 的指南。
先決條件
你已經通過:
Step1:工具安裝和首次測試
Step3:串口及新板介紹
硬件
STM32L4 探索套件物聯網節(jié)點[1] (B-L475E-IOT01A)
USB 數據線 Type-A 轉 Micro-B
文學
用于物聯網節(jié)點的UM2153 探索套件,與 STM32L4 的多通道通信
UM1884 STM32L4/L4+ HAL及底層驅動說明
UM1859開始使用 STM32Cube 的 X-CUBE-MEMS1 運動 MEMS 和環(huán)境傳感器軟件擴展
UM2579從 System Workbench 到 STM32CubeIDE 的遷移指南
STM32L4 探索套件物聯網節(jié)點入門
內容↑
[隱藏]
1個B-L475E-IOT01A 的傳感器使用
1.1硬件說明
1.2示例:使用 HTS221 傳感器獲取溫度值并將其顯示在終端上
1.2.1使用 STM32CubeMX 創(chuàng)建工作項目
1.2.2將 BSP 驅動程序復制到您的項目
1.2.3支持 STM32CubeIDE 工作區(qū)中的 BSP
1.2.4更新包含路徑
1.2.5更新源文件
1.2.6編譯并運行示例
2個附錄:將一個AC6示例移植到STM32CubeIDE
2.1硬件說明
2.2示例:使用 HTS221 傳感器獲取溫度值并顯示在終端上(從 AC6 移植到 STM32CubeIDE)
2.2.1硬件設置
2.2.2示例詳細信息
2.2.3將示例移植到STM32CubeIDE
2.2.4編譯并運行示例
3個參考
1傳感器與 B-L475E-IOT01A 的使用↑
1.1硬件說明↑
STM32L4 探索套件物聯網節(jié)點 (B-L475E-IOT01A) 中可用的主要傳感器有:
用于相對濕度和溫度的電容式數字傳感器 (HTS221)
260-1260 hPa 絕對數字輸出氣壓計 (LPS22HB)
3D 加速度計和 3D 陀螺儀 (LSM6DSL)
高性能 3 軸磁力計 (LIS3MDL)。
1.2示例:使用HTS221傳感器獲取溫度值并顯示在終端上↑
本節(jié)的目的是逐步說明如何與 HTS221 傳感器連接以獲取溫度值并將其顯示在終端上。
1.2.1使用STM32CubeMX創(chuàng)建工作項目↑
起點是標題為B-L475E-IOT01A 上的 UART I/F 簡介的第 3 步教程中描述的使用 STM32CubeMX 生成的項目。
按照此處描述的步驟操作并調用生成的項目 L4_IOT_Sensors。
1.2.2復制BSP驅動到你的項目中↑
BSP(板級支持包)驅動程序在STM32CubeL4包中提供。這提供了與電路板的硬件組件相對應的 API。STM32CubeL4 軟件包的最新版本默認下載到 STM32CubeMX 存儲庫 ( C:Usersuser_nameSTM32CubeRepositorySTM32Cube_FW_L4_Vx.xx.x )。
BSP在樹中的位置和內容:
信息
STM32CubeL4 使用的版本是 1.11.0,但它會隨著時間的推移而增加。
以下是將 BSP 驅動程序復制到您的項目中的步驟:
復制STM32CubeL4/Drivers/BSP/B-L475E-IOT01文件夾
在生成的項目中,創(chuàng)建一個文件夾L4_IOT_Sensors/Drivers/BSP。將復制的文件夾粘貼到那里。
復制STM32CubeL4/Drivers/BSP/Components文件夾。將其粘貼到L4_IOT_Sensors/Drivers/BSP/Components下。
可選清理工作目錄:由于僅使用 HTS221 溫度傳感器,可能會刪除已復制到工作目錄的其他一些文件和文件夾
在 L4_IOT_SensorsDriversBSPB-L475E-IOT01 下,僅保留以下文件:
在L4_IOT_SensorsDriversBSPComponents下,僅保留以下文件夾:
1.2.3 STM32CubeIDE工作區(qū)支持BSP ↑
復制完成后,添加的文件夾會自動出現在STM32CubeIDE工作區(qū)中:
1.2.4更新包含路徑↑
更新路徑以支持新的頭文件:
從Project Explorer透視圖中選擇相關項目:
從“項目”菜單或“文件”菜單,轉到“屬性”》“C/C++ 構建”》“設置”》“工具設置”》“MCU GCC 編譯器”》“包含路徑”
單擊以包含新路徑
添加。。/Drivers/BSP/B-L475E-IOT01和。。/Drivers/BSP/Components/hts221路徑
以下屏幕截圖總結了要遵循的步驟:
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 《數學。h》 /* 用戶代碼結束包括 */
添加私有值以用于溫度值和終端上顯示的消息:
/* USER CODE BEGIN PV */ /* 私有變量 -------------------------------------- --------------*/ float temp_value = 0 ; // 測量溫度值 char str_tmp [ 100 ] = “” ; // 顯示溫度值的格式化消息 uint8_t msg1 [] = “****** Temperature values measurement ****** nnr ” ; uint8_t msg2 [] = “=====》 初始化溫度傳感器 HTS221 rn ” ; uint8_t msg3 [] = “=====》 溫度傳感器 HTS221 已初始化rn ” ; /* 用戶代碼結束 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 ); /* 用戶代碼結束 2 */ /
在while(1)循環(huán)中,讀取溫度值,格式化,然后在終端顯示帶有測量值的信息:
/* 用戶代碼開始 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 ); /* 用戶代碼結束 3 */
25px-Info_white.png
信息
注意在正確的用戶代碼部分進行更新,以避免使用新的 STM32CubeMX 代碼生成覆蓋它們。
1.2.6編譯運行示例↑
點擊Build按鈕編譯項目
點擊調試按鈕運行軟件
打開控制臺模擬器,例如 TeraTerm [2]。要配置控制臺波特率,請選擇數據位:8 并單擊確定。您的 PC 上的端口名稱可能不同
STM32CubeIDE 打開調試透視圖。點擊Resume按鈕執(zhí)行代碼
TeraTerm [2]在測得的溫度值之前顯示初始化消息:
現在您可以:
構建您自己的項目以使用嵌入在 B-L475E-IOT01A 上的傳感器測量溫度值
將 BSP 組件添加到 STM32CubeMx 生成的項目中
將該板的用途擴展到 HTS221 以外的傳感器,以進行環(huán)境測量。
更多信息可以來這里獲取==>>電子技術應用-AET<<