ST最近新推出了一款變量檢測及可視化的工具STM32CubeMonitor。應該有小夥伴們已經使用過STMStudio來實時監測變量,與STMStudio相比,STM32CubeMonitor除了同樣可以提供變量監測的功能,還有非常豐富的組件可以搭建各種風格的圖形化界面,以及眾多免費的第三方組件可以進行功能擴展。此外,STM32CubeMonitor還支持遠程監測功能。
那麼,接下來我們就一起來認識一下這位新的STM32Cube家族新成員。
STM32Cube系列軟體開發工具,提供了從MCU配置,代碼生成,編譯以及調試,到程序燒錄和監測整個軟體開發流程需要的全部功能。
其中,STM32CubeMX提供圖形化的配置界面,幫助開發者快速創建一個新工程(支持STM32CubeIDE, IAR, KEIL等IDE);
STM32CubeIDE基於Eclipse和GCC工具鏈,提供代碼編輯,編譯,調試功能。
STM32CubeProgrammer是STM32程序燒錄工具,可以對片上flash及片外的存儲器進行擦除和編程,支持ST-LINK調試接口以及UART/USBDFU bootloader接口。
還有圖形化功耗測量軟體STM32CubeMonitor-Power, STM32WB FR性能測試軟體STM32CubeMonitor-RF等。
現在推出的STM32CubeMonitor變量監測及可視化工具,支持通過ST-LINK的SWD或者JTAG接口連接到目標MCU,可以在程序全速運行不被打斷的情況下,讀取需要檢測的變量值。非常適合那些需要在程序全速運行下進行調試的情況,是對傳統的通過設置斷點進行調試的方式的補充。
STM32CubeMonitor基於NODE-RED開發,有豐富的圖形開發組件,可以開發出靈活多變的可視化圖形界面。
NODE-RED作為一個開源的可視化界面開發工具,有一個活躍的開發者社區,裡面有眾多開發者開發的各種功能的新節點,STMCubeMonitor支持導入這些第三方的節點來不斷擴展功能。
STM32CubeMonitor可以通過非侵入式的方式(Direct模式)檢測程序變量,對採集的數據實時分析,協助程序診斷。除了Direct模式以外,Snapshot模式下通過往應用程式添加特定採樣代碼,可以提供更精確的採樣。變量可以根據可執行文件導入,也可以直接根據變量地址進行手動添加,還可以對採集的變量進行各種後處理運算,設置採樣觸發條件等。
STM32CubeMonitor採用圖形化的編程界面,整個編程過程通過拖拽的方式就可以完成,無需寫代碼。有大量可選的圖形化組件(儀錶盤,柱狀圖,點線圖……)可用。
提供Windows, Mac, Linux等多作業系統的安裝程序。當STM32CubeMonitor在一臺電腦上運行後,還可以通過瀏覽器在其他的電腦,平板或手機上打開其界面進編輯或者查看Dashboard(需要在同一個區域網)。
STM32CubeMonitor有兩種工作模式:設計模式和Dashboard模式。設計模式即是編輯模式,打開STM32CubeMonitor默認就是處在這個模式。設計模式下,最左邊一欄列出了所有當前可用的節點,我們可以通過拖拽不同的節點來創建或者編輯不同的邏輯數據流(Flow),來實現想要的功能。比如將要檢測的變量通過點線圖進行實時顯示,或者通過一個按鈕來控制某個GPIO口的狀態等。設計模式下最右邊一欄可以看到當前選中節點的使用說明和程序運行的調試信息等內容。
待所有的節點都編輯完成並部署運行後,可通過右上方的DASHBOARD按鈕進入Dashboard模式。在Dashboard模式下,我們可以看到在設計模式下編輯的「流」運行的結果,看到我們之前設計的界面,通過這個界面去檢測或者控制變量的值。
STM32CubeMonitor基於Node-RED,Node-RED是一個基於「流(Flow)」的開發工具。那麼何為「流」? Node-RED提供了很多功能節點,這些節點可以分為輸入節點,輸出節點和功能節點。把這些節點連接起來就是一個」流」。多個「流」的組合,我們也把它叫做「流」。比如在設計模式下的標籤頁面我們也稱作「流」,它裡面實際會包含多個不同功能的單個「流」。
上圖是通過STM32CubeMonitor進行遠程監測的連接示意圖。如我們前面所說,將STM32開發板通過ST-LINK連接到本地電腦,STM32CubeMonitor可以在本地電腦(Host PC)上運行,同時也可以在其他的電腦,平板或手機上通過瀏覽器訪問host PC的IP位址(埠號1880)打開STM32CubeMonitor的界面,進行編輯或者查看Dashboard(需要在同一個區域網)。
從ST官網可以下載最新的STM32CubeMonitor安裝程序。
STM32CubeMonitor所有的技術文檔都是網頁版的,放在了STM32MCU wiki下的對應板塊中(https://wiki.st.com/stm32mcu/wiki/Category:STM32CubeMonitor),而且內容還在不斷的更新。這樣的好處就是每次打開網頁看到的都是最新的文檔版本,不用頻繁去官網查詢最新版本,也不用擔心自己會遺漏重要更新。
另外還有一個STM32社區,有任何關於STM32CubeMonitor的問題都可以到這個社區提問,你也可以去看看別人的問題,說不定會有新的啟發(https://community.st.com/s/topic/0TO0X000000x33lWAA/stm32cubemonitor)。
最後還有一個STM32CubeMonitor的視頻,可以幫助初學者快速了解其基本功能。
在這一部分,將會通過「基本的數據採集流程」,「實時波形監測」和「利用公有雲平臺進行遠程數據監控」等三個例子,來介紹STM32CubeMonitor不同功能的使用。本課程提供有三個例程所對應的MCU及CubeMonitor的程序,開發板使用的是Nucleo-L4R5ZI和X-NUCLEO-IKS01A2 傳感器擴展板(僅在第三個例程中用到)。你也可以使用其他的STM32開發板,按照每個例程的說明實現對應MCU的功能就可以。
例程詳細內容請到STM32中文官網閱覽
例程一網址:
https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeMonitor
例程二網址:
https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeMonitor2
例程三網址:
https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeMonitor3
以上網址請複製粘貼到外部瀏覽器閱讀