引言
本篇 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)就無法更改了!!!
選擇右側(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文章
345瀏覽量
36625 -
LoRa
+關(guān)注
關(guān)注
349文章
1676瀏覽量
231795 -
CubeMx
+關(guān)注
關(guān)注
0文章
30瀏覽量
1327
原文標(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)先 登錄
相關(guān)推薦
評(píng)論