目標(biāo)描述
本教程的目的是解釋如何使用 STM32L4 探索套件中提供的傳感器進(jìn)行測(cè)量。逐步描述溫度傳感器的配置。
完成本教程后,您將能夠使用 B-L475E-IOT01A 板上可用的傳感器收集值。
本教程的附錄提供了有關(guān)如何將 AC6 示例移植到 STM32CubeIDE 的指南。
先決條件
你已經(jīng)通過(guò):
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)說(shuō)明
UM1859開(kāi)始使用 STM32Cube 的 X-CUBE-MEMS1 運(yùn)動(dòng) MEMS 和環(huán)境傳感器軟件擴(kuò)展
UM2579從 System Workbench 到 STM32CubeIDE 的遷移指南
STM32L4 探索套件物聯(lián)網(wǎng)節(jié)點(diǎn)入門(mén)
內(nèi)容↑
[隱藏]
1個(gè)B-L475E-IOT01A 的傳感器使用
1.1硬件說(shuō)明
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硬件說(shuō)明
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硬件說(shuō)明↑
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)。
1.2示例:使用HTS221傳感器獲取溫度值并顯示在終端上↑
本節(jié)的目的是逐步說(shuō)明如何與 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ǔ)庫(kù) ( C:Usersuser_nameSTM32CubeRepositorySTM32Cube_FW_L4_Vx.xx.x )。
BSP在樹(shù)中的位置和內(nèi)容:
信息
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ū)中:
1.2.4更新包含路徑↑
更新路徑以支持新的頭文件:
從Project Explorer透視圖中選擇相關(guān)項(xiàng)目:
從“項(xiàng)目”菜單或“文件”菜單,轉(zhuǎn)到“屬性”》“C/C++ 構(gòu)建”》“設(shè)置”》“工具設(shè)置”》“MCU GCC 編譯器”》“包含路徑”
單擊以包含新路徑
添加。。/Drivers/BSP/B-L475E-IOT01和。。/Drivers/BSP/Components/hts221路徑
以下屏幕截圖總結(jié)了要遵循的步驟:
1.2.5更新源文件↑
唯一要修改的文件是main.c,如下所示:
包含頭文件:stm32l475e_iot01.h、stm32l475e_iot01_tsensor.h和math.h
/* 用戶代碼開(kāi)始包括 */ 《 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 溫度傳感器:
/* 用戶代碼開(kāi)始 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è)量值的信息:
/* 用戶代碼開(kāi)始 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)行軟件
打開(kāi)控制臺(tái)模擬器,例如 TeraTerm [2]。要配置控制臺(tái)波特率,請(qǐng)選擇數(shù)據(jù)位:8 并單擊確定。您的 PC 上的端口名稱(chēng)可能不同
STM32CubeIDE 打開(kāi)調(diào)試透視圖。點(diǎn)擊Resume按鈕執(zhí)行代碼
TeraTerm [2]在測(cè)得的溫度值之前顯示初始化消息:
現(xiàn)在您可以:
構(gòu)建您自己的項(xiàng)目以使用嵌入在 B-L475E-IOT01A 上的傳感器測(cè)量溫度值
將 BSP 組件添加到 STM32CubeMx 生成的項(xiàng)目中
將該板的用途擴(kuò)展到 HTS221 以外的傳感器,以進(jìn)行環(huán)境測(cè)量。
更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<