當前位置:首頁 > 公眾號精選 > 電子電路開發(fā)學(xué)習(xí)
[導(dǎo)讀]摘要想要打印調(diào)試信息,發(fā)現(xiàn)串口不夠用了,手邊沒有USB轉(zhuǎn)TTL模塊?代碼自己測試好好的,屏蔽了打印信息之后,代碼運行異常了,咋整?EASY!今天小飛哥教你如何讓你手中的JLINK成為調(diào)試利器,10分鐘搞不定,你打我~資料保存在gitee倉庫,獲取方法:資料獲取J-LINK驅(qū)動安裝...

摘要

想要打印調(diào)試信息,發(fā)現(xiàn)串口不夠用了,手邊沒有USB轉(zhuǎn)TTL模塊?代碼自己測試好好的,屏蔽了打印信息之后,代碼運行異常了,咋整?EASY!今天小飛哥教你如何讓你手中的JLINK成為調(diào)試利器,10分鐘搞不定,你打我~

資料保存在gitee倉庫,獲取方法:資料獲取

J-LINK 驅(qū)動安裝

可以在官網(wǎng)下載,選擇對應(yīng)的系統(tǒng),對應(yīng)的JLINK驅(qū)動版本

https://www.segger.com/downloads/jlink

當然了,也可以通過文章中放的資料鏈接下載

一路不要反抗,靜靜地安裝就行了...

OK-->finis,安裝是比較簡單的

打開目錄(這是我的安裝目錄),進入到Samples目錄下 C:\Program Files\SEGGER\JLink\Samples

RTT文件夾下即是我們接下來要用到的源碼文件

此外還需要config目錄下的SEGGER_RTT_Conf.h文件

最終需要的文件為

代碼移植

找一個可以正常運行的工程,小飛哥是以STM32F407ZGT6為主控做的一個分享,大家伙可以根據(jù)自己的MCU進行移植

工程目錄下中新建RTT目錄,并添加到工程中,添加RTT相關(guān)驅(qū)動源碼

包含RTT的路徑進來

此時編譯,應(yīng)該是穩(wěn)妥妥的,沒問題的...

快速使用

重點來了,移植完成該如何使用呢?

這里是有個example的文件夾的

里面有好幾個示例,咱們只來看看框框中的即可,其他的有興趣,自行研究~

里面是打印一些信息,我們來移植幾個進工程里面去

在while循環(huán)中,我們打印一些信息

另外,RTT也封裝好了printf函數(shù),紅框中是一些支持的數(shù)據(jù)類型

到這里忽然意識到,像串口,我們有個串口調(diào)試助手可以監(jiān)測打印的信息,JLINK打印的信息怎么監(jiān)測呢

不用擔(dān)心,官方是有成套方案的,我們找到這么個軟件

打開軟件,選擇USB->芯片型號->默認值就行我選擇的是通道0,代碼中配置的為通道0,這樣我們就看到了期望打印的信息啦

使用RTT封裝的printf測試看看,英文字符,數(shù)字都顯示OK,中文亂碼了...

莫慌,接下來打開一個叫RTTClient的東西,記住這個端口,下面要考

顯示效果還是可以的,中文也顯示出來了

這個輸出界面畢竟還是有點丑,只要思想不滑坡,方法總比困難多,接下來我們借助第三方軟件,來進行高級點的操作,可以使用xshell,mobaxterm,putty等軟件,建立telnet連接

找到這個端口,19021,我這里是用的是mobaxterm軟件

連接成功

如果中文輸出亂碼的話,修改一下終端字符編碼格式

修改字符編碼格式為

修改之后,輸出正常啦

從RTT封裝的函數(shù)來看,目前僅僅支持下面的一些數(shù)據(jù)類型,暫不支持浮點型,小飛哥也還沒有找到直接輸出浮點型數(shù)據(jù)的方法,需要稍微改一下

浮點數(shù)輸出配置,需要在rtt封裝的SEGGER_RTT_vprintf函數(shù)中加入下面代碼,本質(zhì)上是把浮點數(shù)轉(zhuǎn)換為了字符串輸出

???case?'f':
???case?'F':
???{
?????char?ch[10]={0};
?????const?char?*?s=ch;
?????double?a?=?va_arg(*pParamList,?double);
?????sprintf(ch,"%4.3f",a);//可以在這里進行精度的控制
?????do{
???????c?=?*s;
???????????s ;
???????????if?(c?==?'\0')?break;
???????_StoreChar(
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉