之前的文章:分享一個很酷的上位機軟體。很多朋友都很喜歡這樣子的工具,這樣的上位機固然好用,但是這依然依賴于我們的系統資源。
本次分享另一種相似的工具、方法,不依賴于系統資源,但需要額外的硬體支援,但是這樣一個硬體就是常用的Jlink調試工具。
我們常常都隻是用Jlink來線上調試程式、下載下傳程式。其實Jlink的用處很多,我們要好好運用。本篇筆記我們就來分享一下Jlink的另一個用途:使用Jlink+JScope顯示波形。
什麼是JScope?
J-Scope 是 SEGGER 推出的波形顯示軟體,傻瓜式,簡單易上手。軟體界面如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SY4YjNhNjMmNWYmZTOkNGOxETZxIGN4kzNmJzY3QWOy8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其有兩種方式來顯示波形,一種是 HSS 模式 ,另一種是RTT模式。這裡我們分享的是RTT模式的使用。
實驗示範(keil工程)
(1)準備工作
實驗的前提是需要有Jlink仿真器(V9或V10),其它的有些不能與JScope搭配使用 。同時要裝好Jlink驅動與JScope上位機軟體:
(2)工程移植、測試代碼編寫
安裝好JScope軟體之後,在其安裝目錄下會有如下源碼:
我們這裡的路徑是:
C:Program Files (x86)SEGGERJScope_V611mSampleExample Code RTT
複制如下三個檔案至我們的keil工程目錄下:
然後在keil中添加至我們的demo工程裡,并包含頭檔案SEGGER_RTT.h即可。然後編寫如下測試代碼:
SEGGER_RTT_ConfigUpBuffer 函數說明:
- 第 1 個參數要填通道 1,實際測試通道 0 不可用
- 第 2 個參數非常重要,要使用固定的格式,字元串 JScope_是固定的,主要是下劃線後面的字元。 支援的格式如下:
比如:JScope_I4I4 表示資料包格式由兩個有符号32位資料組成。
- 最後一個參數的備選項為:
- 使用 RTT 模式的話,最後一個參數僅支援 SEGGER_RTT_MODE_NO_BLOCK_SKIP 和 SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL 。
關于SEGGER_RTT,之前已經有分享其實作列印功能的方法,感興趣的朋友可閱讀:STM32中另一種列印調試的方法
最後,編譯下載下傳到闆子裡。
(3)JScope上位機配置
首先,建立工程:
設定為RTT模式:
設定目标裝置(我們這裡使用的是STM32F103ZE):
使用Jlink連接配接目标闆(SWD方式):
連接配接三根線即可,TMS、TCLK、GND。具體的JTAG接口引腳順序如:
點選開始采樣(前提是程式已經跑起來):
波形顯示:
以上就是本次的分享,希望各位喜歡!