引言
本篇 LAT 介紹使用 CubeMX 創建基于采用 STM32WLE5JC/STM32WL55JC 的 STM32WL 板子 的 LoRaWAN 應用。
其中,參考使用了 STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsLoRaWANLoRaWAN_End_Node 創建一個 WLE5Jx_EndNode 的例子。
關于不同 MCU 間的移植可參考
UM1718 11.9 Switching to another MCU
UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU
需要提前準備的環境:
1.配置 CubeMX
1.1 配置 CubeMX 并下載 CubeWL
可以使用 CubeMX 默認安裝的倉庫目錄也可以自定義倉庫目錄,本例使用自定義的倉庫目錄C:UsersgongwSTM32CubeRepositoryCubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:UsersgongwSTM32CubeRepositoryCubeWL=>OK
選擇 Manage software installations 中的 Install or remove embedded software packages 下的
“INSTALL / REMOVE”
點Refresh 更新數據庫
Fresh 結束后,點開 STM32WL 左側的黑色三角,選中 STM32WL 下版本 1.0.0 的 STM32Cube
MCU Package for STM32WL Series,點 Install Now
點擊 Close
1.2 CubeMX 新建項目
打開 STM32CubeMX,在 New Project 下有三中選擇, 請根據需求選擇 New Project 的方式!
1.2.1 Start My project from MCU
第 1 種可使用于所有的 WL 產品,只能生成和配置的用戶自定義(User Defined)的LoRaWAN/SigFox/SUBGHZ 應用,不能生成 CubeWL 中 AT_Slave/EndNode/PingPong demo
1.2.2 Start My project from BOARD
第 2 種適用于 NUCLEO-WL55JC1 和 NUCLEO-WL55JC1 兩種 Demo 板,只能生成和配置的用
戶自定義(User Defined)的LoRaWAN/SigFox/SUBGHZ 應用,不能生成 CubeWL 中AT_Slave/EndNode/PingPong demo
1.2.3 Start My project from EXAMPLES
第 3 種適用于生成 CubeWL 中 NUCLEO-WL55JC1 和 NUCLEO-WL55JC1 的 Examples,可生成和配置 CubeWL 中AT_Slave/EndNode/PingPong demo
1.2.4 Start My project from MCU STM32WLEx
在 New Project 下選擇,”Start My project from MCU ”下的”ACCESS TO MCU SELECTOR“
1.3 CubeMX 導入參考項目
此時再查看 File =>Import Project 選項,變為灰色,表示新項目已被配置,不能再 import 參考項
目。
1.4 CubeMX 配置項目
1.4.1 CubeMX 配置 Project Manager
選擇 Project Manager
1.4.1.1 配置 Project
選擇右側 Project 并配置如下:
注意:
通過 Browse 選擇 Project 保存的目錄
項目名稱 WLEx_AT_Slave 創建在STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO
WL55JCApplicationsLoRaWAN 下,和LoRaWAN_End_Node 同級目錄,即C:UsersgongwSTM32CubeRepositoryCubeWLSTM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-
WL55JCApplicationsLoRaWANWLEx_AT_Slave,以便于與 LoRaWAN_End_Node 進行比較
配置 Application Structure 為 Advanced 與 basic 有什么區別?
Application Structure 為 Advanced 時目錄結構分類分級目錄更清晰。
Application Structure 為 Basic 時,所有的*.h 都在 WLEx_AT_SlaveInc 目錄下,所有的*.c 在
WLEx_AT_SlaveSrc 目錄下。
一旦生成過一次代碼后目錄結構就無法更改了?。?!
1.4.1.2 配置 Code Generator
選擇右側 Code Generator 并配置如下,選擇”Add necessary library files as reference in the toolchain projectconfiguration file “,這樣將不生成 Drivers 和 Middlewares 目錄。
選擇 Generated files 下的“Generate peripheral initialization as a pair of ‘.c/.h’ per peripheral”
注意:
Copy all used library Package (如復制 DriversSTM32WLxx_HAL_Driver 下的所有驅動)
WLEx_AT_Slave 復制到其他目錄下,還能工作
Copy only the necessary library files(如僅復制 DriversSTM32WLxx_HAL_Driver 下使用到的驅動)WLEx_AT_Slave 復制到其他目錄下,還能工作
Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目錄,僅參考DriversSTM32WLxx_HAL_Driver 下的所有驅動)
WLEx_AT_Slave 復制到其他目錄下,不能工作
參考 UM1718 4.9 Project Manager view
3.配置外設
2.1 使能外設
2.1.1 Middleware=>LORAWAN
Middleware=>LORAWAN=>Mode 中勾選Enabled,LORAWAN 功能就使能了,同時SIGFOX 和 SUBGHZ_PHY 就失能了,默認界面如下,后續再繼續配置 LORAWAN 應用。
2.1.2 Timers=>RTC 使能
Timers=>RTC=>勾選 Activate Clock Source,并配置 Alarm A 為 Internal Alarm A
2.2 RTC
配置 Alarm A 為 Internal Alarm A
Clock Configuration => RTC Clock Mux=>LSE
在 Clock Configuration 中檢查 RTC Clock Mux 是否配置為 LSE
Timer =>RTC=>Users Constants
Timer =>RTC=>Parameter Settings
Timer =>RTC=>NVIC Settings
Middleware => LORAWAN => Platform Settings => Timer Server => RTC
2.3 DebugLine
Connectivity=>LPUART1 (AT_Slave)
Clock Configuration =>USART2 Clock Mux => SYSCLK
Middleware => LORAWAN => LoRaWAN middleware => radio_board_if =>Activate Debug Line
Platform Settings => VCOM => USART2
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED)
2.4.1 RF_CTRL
NUCLEO-WL55JC
2.4.2 LED
配置控制 LED 的 GPIO
2.4.3 BUT
配置控制 BUTTON 的 GPIO
2.4.4 DBG
2.4.5 SWD(可選)
需使能 Trace and Debug => DEBUG => JTAG and Trace => Serial Wire
2.4.6 Middleware=>LORAWAN=>Platform Settings
Board resources => LED & BUTTON
Radio => RF SW CTRL
Debug = > Debug Line
2.5 ADC
Analog=>ADC
Middleware=>LORAWAN=>Platform Settings => Vrefint T calibration => ADC (EndNode)
3 STM32WL Templates Patches for CubeMX
STM32WL Templates 在如下目錄,如需要可自行定制自己的 Templates
針對不同的客戶定制化的板子,硬件外設配置不一致,客戶可根據需要定制化自己的外設配置。
從 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射頻開關(RF SW CTRL),按鍵(BUTTON), LED 的配置會不一樣,可能導致編譯錯誤,如想生成的代碼不會產生編譯錯誤,需要編輯一下 STM32WL的 template。
3.1 CubeMX template patches for stm32wl
請參考
3.2 CubeMX Updates from v6.1.1 to v6.2.0
4.驗證
4.0 參考工程
4.1 生成代碼 GENERATE CODE
此時,可以先選擇 GENERATE CODE生成 Project,(如需,請自己選擇項目保存的目錄)
可選擇 Open Project 使用 IDE 直接打開 Project。
或選擇 Open Folder 后,還需再選擇 EWARMProject.eww 打開 Project
4.2 編譯并下載
用 IAR 打開STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO
WL55JCApplicationsLoRaWANWLEx_AT_SlaveEWARMProject.eww如果 IAR 之前已經打開了 WLEx_AT_Slave,在每次重新生成代碼時都如有如下提示,選擇“Yes
to All”
按 F7 或選擇 Project=>Make(F7)來編譯工程,如果編譯無錯誤,選擇
Project=>Download=>Download Active Application 下載 WLEx_AT_Slave 應用
5 接入 cn1.LoRiot Network Server
如果不需要將 WL 的 Sensor 數據轉發到 cn1.LoRiot Network Server 網絡服務器上,可跳過此步驟。
如果需要將 WL 的 Sensor 數據轉發到 cn1.LoRiot Network Serve 網絡服務器上,需用 CubeMX 重新配置下
LORAWAN 的一些參數。
5.1 WL Sensor End Device 信息更改
5.1.1 配置 REGION_EU868
默認配置即可
5.1.2 配置 REGION_CN470
5.2 配置 DevEUI, AppEUI 和 AppKey
在 LoRaWANAppse-identity.h 中更改設備信息 DevEUI, AppEUI 和 AppKey
DevAddr 不需要設置靜態地址,可以配置的
5.3 轉發到 myDevuces Cayenne 應用服務器(可選)
5.4 WL Sensor End Device 信息獲取和確認
其中包含更新過的 WLE5Jx_EndNode.ioc
用 IAR 編譯 ProjectsNUCLEO-WL55JCApplicationsLoRaWANWLE5Jx_EndNodeEWARMProject.eww,并下載
到 WL 中,注意 STLINKv3 的設置。
連接 WL 串口到 PC,PC 端打開串口,配置如下,然后重啟 WL,會看到 DEV EUI,APP EUI,APP KEY
Open a terminal emulation software such as Tera Term and configure it with the following settings:
– Port: (Virtual COM port number assigned to the board)
– Baud rate: 115200
– Data: 8 bit
– Parity: none
– Stop: 1 bit
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17173瀏覽量
351629 -
STM32
+關注
關注
2270文章
10906瀏覽量
356530 -
lorawan
+關注
關注
3文章
322瀏覽量
23830 -
CubeMx
+關注
關注
0文章
31瀏覽量
1350
原文標題:工程師筆記|CubeMX創建STM32WLE5Jx LoRa EndNode+cn1.LoRiot應用
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論