引言
本篇 LAT 介紹使用 CubeMX 創(chuàng)建基于 STM32WL 的 LoRa 應(yīng)用。
STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-WL55JC 中的例程都是基于 STM32WL BGA73 的,CubeMX 無法直接創(chuàng)建基于 STM32WL QFN48 的例程。
同時(shí)介紹如何參考STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsSubGHz_PhySubGHz_Phy_PingPong 創(chuàng)建一個(gè) WLEx_PingPong 的例
子。
關(guān)于不同 MCU 間的移植可參考
UM1718 11.9 Switching to another MCU
UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU
需要提前準(zhǔn)備的環(huán)境:

1.配置 CubeMX
1.1 配置 CubeMX 并下載 CubeWL
可以使用 CubeMX 默認(rèn)安裝的倉(cāng)庫(kù)目錄也可以自定義倉(cāng)庫(kù)目錄,本例使用自定義的倉(cāng)庫(kù)目錄C:UsersgongwSTM32CubeRepositoryCubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:UsersgongwSTM32CubeRepositoryCubeWL=>OK


選擇 Manage software installations 中的 Install or remove embedded software packages 下的
“INSTALL / REMOVE”


點(diǎn)Refresh 更新數(shù)據(jù)庫(kù)

Fresh 結(jié)束后,點(diǎn)開 STM32WL 左側(cè)的黑色三角,選中 STM32WL 下版本 1.0.0 的 STM32Cube
MCU Package for STM32WL Series,點(diǎn) Install Now

點(diǎn)擊 Close
1.2 CubeMX 新建項(xiàng)目
打開 STM32CubeMX,在 New Project 下有三中選擇, 請(qǐng)根據(jù)需求選擇 New Project 的方式!

1.2.1 Start My project from MCU
第 1 種可使用于所有的 WL 產(chǎn)品,只能生成和配置的用戶自定義(User Defined)的LoRaWAN/SigFox/SUBGHZ 應(yīng)用,不能生成 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 應(yīng)用,不能生成 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



選擇 NUCLEO-WL55JC 對(duì)應(yīng)的 STM32WL55JC






1.3 CubeMX 導(dǎo)入?yún)⒖柬?xiàng)目






此時(shí)再查看 File =>Import Project 選項(xiàng),變?yōu)榛疑硎拘马?xiàng)目已被配置,不能再 import 參考項(xiàng)目。

1.4 CubeMX 配置項(xiàng)目
1.4.1 CubeMX 配置 Project Manager
選擇 Project Manager
1.4.1.1 配置 Project
選擇右側(cè) Project 并配置如下:

注意:
通過 Browse 選擇 Project 保存的目錄
項(xiàng)目名稱 WLEx_AT_Slave 創(chuàng)建在STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-
WL55JCApplicationsLoRaWAN 下,和LoRaWAN_End_Node 同級(jí)目錄,即
C:UsersgongwSTM32CubeRepositoryCubeWLSTM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-WL55JCApplicationsLoRaWANWLEx_PingPong,以 便于與 LoRaWAN_End_Node 進(jìn)行比較
配置 Application Structure 為 Advanced 與 basic 有什么區(qū)別?
Application Structure 為 Advanced 時(shí)目錄結(jié)構(gòu)分類分級(jí)目錄更清晰。
Application Structure 為 Basic 時(shí),所有的*.h 都在 WLEx_PingPongInc 目錄下,所有的*.c 在
WLEx_PingPongSrc 目錄下。
一旦生成過一次代碼后目錄結(jié)構(gòu)就無法更改了!?。?/p>

選擇右側(cè) Code Generator 并配置如下,選擇”Add necessary library files as reference in the toolchain project configuration file “,這樣將不生成 Drivers 和 Middlewares 目錄。
選擇 Generated files 下的“Generate peripheral initialization as a pair of ‘.c/.h’ per peripheral”


注意:
Copy all used library Package (如復(fù)制 DriversSTM32WLxx_HAL_Driver 下的所有驅(qū)動(dòng))
WLEx_PingPong 復(fù)制到其他目錄下,還能工作
Copy only the necessary library files(如僅復(fù)制 DriversSTM32WLxx_HAL_Driver 下使用到的驅(qū)動(dòng))WLEx_PingPong復(fù)制到其他目錄下,還能工作
Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目錄,僅參考DriversSTM32WLxx_HAL_Driver 下的所有驅(qū)動(dòng))
WLEx_PingPong 復(fù)制到其他目錄下,不能工作
參考 UM1718 4.9 Project Manager view



3.配置外設(shè)
2.1 使能外設(shè)
2.1.1 Middleware=>SUBGHZ_PHY 使能

2.1.2 Timers=>RTC 使能
Timers=>RTC=>勾選 Activate Clock Source

2.2 RTC

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
2.3.1 Middleware => SUBGHZ_PHY => SubGHz_Phy middleware =>
radio_board_if =>Actovate Debug Line

2.3.2. Platform Settings => VCOM => USART2

4.3.3. Clock Configuration => UART2 Clock Mux => SYSCLK

Platform Settings => VCOM => LPUART1

2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED)
2.4.1 RF_CTRL
System Core => GPIO => PA8 (customizable)



Platform Settings => Radio => RF SW CTRL

2.4.2 LED
System Core => GPIO => PB2 (customizable)

Platform Settings => Board resources => LED

3 STM32WL Templates Patches for CubeMX
STM32WL Templates 在如下目錄,如需要可自行定制自己的 Templates

針對(duì)不同的客戶定制化的板子,硬件外設(shè)配置不一致,客戶可根據(jù)需要定制化自己的外設(shè)配置。
從 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射頻開關(guān)(RF SW CTRL),按鍵(BUTTON), LED 的配置會(huì)不一樣,可能導(dǎo)致編譯錯(cuò)誤,如想生成的代碼不會(huì)產(chǎn)生編譯錯(cuò)誤,需要編輯一下 STM32WL的 template。
3.1 CubeMX template patches for stm32wl
請(qǐng)參考

3.2 CubeMX Updates from v6.1.1 to v6.2.0



4.驗(yàn)證
4.1參考工程

4.2 編譯并下載
用 IAR 打開STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsLoRaWANWLEx_PingPongEWARMProject.eww
如果 IAR 之前已經(jīng)打開了 WLEx_PingPong,在每次重新生成代碼時(shí)都如有如下提示,選擇“Yes to All”

按 F7 或選擇 Project=>Make(F7)來編譯工程,如果編譯無錯(cuò)誤,選擇Project=>Download=>Download Active Application 下載WLEx_PingPong 應(yīng)用
審核編輯:湯梓紅
-
IAR
+關(guān)注
關(guān)注
5文章
395瀏覽量
38253 -
LoRa
+關(guān)注
關(guān)注
354文章
1831瀏覽量
236920 -
CubeMx
+關(guān)注
關(guān)注
0文章
31瀏覽量
1916
原文標(biāo)題:工程師筆記|CubeMX 創(chuàng)建 WL SubGHz PingPong 應(yīng)用
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32CubeMX STM32WL不能配置LoRaWAN的原因?
新手求助在STM32CubeMX中為STM32WL創(chuàng)建新項(xiàng)目失敗
使用CubeMX創(chuàng)建STM32WL板子的LoRaWAN應(yīng)用
線下實(shí)訓(xùn) | STM32WL LoRa? SoC應(yīng)用開發(fā)及設(shè)計(jì)
用于 STM32WL 系列 LoRa?調(diào)制的 RSSI 和 SNR
CubeMX創(chuàng)建WL LoRa EndNode應(yīng)用
CubeMX創(chuàng)建WL LoRa AT_Slave應(yīng)用
STM32WL FUOTA應(yīng)用設(shè)計(jì)
STM32WL LoRa RF測(cè)試
STM32WL使用STM32CubeMX創(chuàng)建LoRa節(jié)點(diǎn)應(yīng)用

使用CubeMX創(chuàng)建基于STM32WL的LoRa應(yīng)用
評(píng)論