引言
本篇 LAT 介紹使用 CubeMX 創(chuàng)建基于采用 STM32WLE5JC/STM32WL55JC 的 STM32WL 板子 的 LoRaWAN 應(yīng)用。
其中,參考使用了 STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsLoRaWANLoRaWAN_End_Node 創(chuàng)建一個(gè) WLE5Jx_EndNode 的例子。
關(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
1.2.4 Start My project from MCU STM32WLEx
在 New Project 下選擇,”Start My project from MCU ”下的”ACCESS TO MCU SELECTOR“
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_AT_Slave,以便于與 LoRaWAN_End_Node 進(jìn)行比較
配置 Application Structure 為 Advanced 與 basic 有什么區(qū)別?
Application Structure 為 Advanced 時(shí)目錄結(jié)構(gòu)分類分級(jí)目錄更清晰。
Application Structure 為 Basic 時(shí),所有的*.h 都在 WLEx_AT_SlaveInc 目錄下,所有的*.c 在
WLEx_AT_SlaveSrc 目錄下。
一旦生成過一次代碼后目錄結(jié)構(gòu)就無法更改了!??!
1.4.1.2 配置 Code Generator
選擇右側(cè) 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 (如復(fù)制 DriversSTM32WLxx_HAL_Driver 下的所有驅(qū)動(dòng))
WLEx_AT_Slave 復(fù)制到其他目錄下,還能工作
Copy only the necessary library files(如僅復(fù)制 DriversSTM32WLxx_HAL_Driver 下使用到的驅(qū)動(dòng))WLEx_AT_Slave 復(fù)制到其他目錄下,還能工作
Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目錄,僅參考DriversSTM32WLxx_HAL_Driver 下的所有驅(qū)動(dòng))
WLEx_AT_Slave 復(fù)制到其他目錄下,不能工作
參考 UM1718 4.9 Project Manager view
3.配置外設(shè)
2.1 使能外設(shè)
2.1.1 Middleware=>LORAWAN
Middleware=>LORAWAN=>Mode 中勾選Enabled,LORAWAN 功能就使能了,同時(shí)SIGFOX 和 SUBGHZ_PHY 就失能了,默認(rèn)界面如下,后續(xù)再繼續(xù)配置 LORAWAN 應(yīng)用。
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
針對(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.0 參考工程
4.1 生成代碼 GENERATE CODE
此時(shí),可以先選擇 GENERATE CODE生成 Project,(如需,請(qǐng)自己選擇項(xiàng)目保存的目錄)
可選擇 Open Project 使用 IDE 直接打開 Project。
或選擇 Open Folder 后,還需再選擇 EWARMProject.eww 打開 Project
4.2 編譯并下載
用 IAR 打開STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO
WL55JCApplicationsLoRaWANWLEx_AT_SlaveEWARMProject.eww如果 IAR 之前已經(jīng)打開了 WLEx_AT_Slave,在每次重新生成代碼時(shí)都如有如下提示,選擇“Yes
to All”
按 F7 或選擇 Project=>Make(F7)來編譯工程,如果編譯無錯(cuò)誤,選擇
Project=>Download=>Download Active Application 下載 WLEx_AT_Slave 應(yīng)用
5 接入 cn1.LoRiot Network Server
如果不需要將 WL 的 Sensor 數(shù)據(jù)轉(zhuǎn)發(fā)到 cn1.LoRiot Network Server 網(wǎng)絡(luò)服務(wù)器上,可跳過此步驟。
如果需要將 WL 的 Sensor 數(shù)據(jù)轉(zhuǎn)發(fā)到 cn1.LoRiot Network Serve 網(wǎng)絡(luò)服務(wù)器上,需用 CubeMX 重新配置下
LORAWAN 的一些參數(shù)。
5.1 WL Sensor End Device 信息更改
5.1.1 配置 REGION_EU868
默認(rèn)配置即可
5.1.2 配置 REGION_CN470
5.2 配置 DevEUI, AppEUI 和 AppKey
在 LoRaWANAppse-identity.h 中更改設(shè)備信息 DevEUI, AppEUI 和 AppKey
DevAddr 不需要設(shè)置靜態(tài)地址,可以配置的
5.3 轉(zhuǎn)發(fā)到 myDevuces Cayenne 應(yīng)用服務(wù)器(可選)
5.4 WL Sensor End Device 信息獲取和確認(rèn)
其中包含更新過的 WLE5Jx_EndNode.ioc
用 IAR 編譯 ProjectsNUCLEO-WL55JCApplicationsLoRaWANWLE5Jx_EndNodeEWARMProject.eww,并下載
到 WL 中,注意 STLINKv3 的設(shè)置。
連接 WL 串口到 PC,PC 端打開串口,配置如下,然后重啟 WL,會(huì)看到 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
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349914 -
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354289 -
lorawan
+關(guān)注
關(guān)注
3文章
312瀏覽量
23785 -
CubeMx
+關(guān)注
關(guān)注
0文章
30瀏覽量
1306
原文標(biāo)題:工程師筆記|CubeMX創(chuàng)建STM32WLE5Jx LoRa EndNode+cn1.LoRiot應(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)論