當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 大魚機(jī)器人
[導(dǎo)讀]??摘要:不知道大家在單片機(jī)開發(fā)中是如何打印調(diào)試信息的,大多數(shù)應(yīng)該是用串口調(diào)試打印吧,在大多數(shù)的情況下,一般在制板和寫代碼時(shí)都會(huì)預(yù)留串口1做為調(diào)試打印用。但是在實(shí)際開發(fā)如果沒有預(yù)留串口怎么辦?其實(shí)我們的下載器是可以用來作為調(diào)試打印來用的,只是很多小伙伴不知道這個(gè)功能而已,今天就來...

??

摘要:不知道大家在單片機(jī)開發(fā)中是如何打印調(diào)試信息的,大多數(shù)應(yīng)該是用串口調(diào)試打印吧,在大多數(shù)的情況下,一般在制板和寫代碼時(shí)都會(huì)預(yù)留串口1做為調(diào)試打印用。但是在實(shí)際開發(fā)如果沒有預(yù)留串口怎么辦?其實(shí)我們的下載器是可以用來作為調(diào)試打印來用的,只是很多小伙伴不知道這個(gè)功能而已,今天就來說一下如何用調(diào)試器JLink來打印信息。

1、JLink仿真調(diào)試器

下載器五花八門,但是我只用JLink,小巧方便攜帶。對(duì)于單片機(jī)開發(fā)者一般所用的下載器基本就是JLink和ST-Link。這兩者功能差不多,JLink是SEEGER公司的,ST-Link是ST公司的,而且只支持ST系列的芯片。只用JLink下載器調(diào)試,原因就是這玩意體積小,只有四根線,用起來太方便了,YYDS!
J-Link OB ARM 仿真調(diào)試器

2、安裝JLink驅(qū)動(dòng)

下載鏈接:https://www.segger.com/downloads/jlink/。
買回來JLink驅(qū)動(dòng)后,一般賣家都會(huì)提供JLink的驅(qū)動(dòng)程序,驅(qū)動(dòng)安裝完成后就可以下載調(diào)試程序了。
https://www.segger.com/downloads/jlink/
當(dāng)然我們現(xiàn)在要使用JLink的RTT功能(實(shí)時(shí)傳輸Real Time Transfer,可不是RT-Thread操作系統(tǒng)啊),就需要在官網(wǎng)下載完整的Jlink包,最新版本的是V7.52版本的,當(dāng)然別的版本也可以。下載完成后直接安裝可以了。安裝完成后你會(huì)在你的安裝目錄下看到如下內(nèi)容:
JLink安裝目錄

3、移植RTT

安裝完成就好辦了,RTT源碼包就在我們剛剛安裝的JLINK驅(qū)動(dòng)的目錄里面。我的目錄是:D:\Software\SEGGER\JLink_V644b\Samples\RTT
解壓后具體的目錄是:D:\Software\SEGGER\JLink_V644b\Samples\RTT\SEGGER_RTT_V644b\RTT
然后將這個(gè)RTT文件夾復(fù)制到我們的編寫程序的工程文件夾中
然后在項(xiàng)目中新建一個(gè)RTT分組,并將RTT文件夾中的兩個(gè).c文件添加進(jìn)來。
當(dāng)然還要記得添加RTT的頭文件路徑
到這里基本就移植成功了,是不是很簡(jiǎn)單,就是把RTT的源碼添加到工程中即可,完全不需要修改別的什么操作。

4、RTT打印輸出

接下來就可以打印輸出了。#include?"sys.h"
#include?"delay.h"
#include?"usart.h"
#include?"led.h"
#include?"SEGGER_RTT.h"

int?main(void)
{?
????HAL_Init();?????????????????????//初始化HAL庫(kù)????
????Stm32_Clock_Init(336,8,2,7);???//設(shè)置時(shí)鐘,168Mhz
?delay_init(168);????????????????//初始化延時(shí)函數(shù)
?LED_Init();??????//初始化LED?
?
?while(1)
?{
?????????SEGGER_RTT_printf(0,"zhiguoxin666\r\n");
?}
}
編譯沒有錯(cuò)誤之后連接好下載器
連接好硬件
配置為SW模式
之后打開JLink安裝目錄下的JLinkRTTViewer.exe
按照如下配置
將代碼下載到單片機(jī)中就可以看到已經(jīng)完美的打印了。

5、RTT的使用技巧

1、RTT緩沖大小

有時(shí)候我們發(fā)現(xiàn)我們的信息不能完全的打印出來,可能是因?yàn)榫彌_不夠,默認(rèn)緩沖區(qū)大小事1K字節(jié),如果不夠可以改大一點(diǎn)。
默認(rèn)1024字節(jié)

2、多虛擬端口使用

RTT支持向不同的虛擬端口中打印信息,使用方法如下。首先在RTT Viewer軟件中分別打開三個(gè)虛擬端口:
編寫代碼while(1)
{
?SEGGER_RTT_SetTerminal(0);
?SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER?RTT?Terminal?0!\r\n");
?SEGGER_RTT_SetTerminal(1);
?SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER?RTT?Terminal?1!\r\n");
?SEGGER_RTT_SetTerminal(2);
?SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER?RTT?Terminal?2!\r\n");
?delay_ms(1000);
}
編譯、鏈接、下載,觀察現(xiàn)象:
窗口0
窗口1
窗口2

3、修改打印字符顏色

RTT支持不同顏色的字符顯示。
時(shí)用時(shí)在字符串前面加上對(duì)應(yīng)顏色的宏定義就可以了。while(1)
{
?SEGGER_RTT_SetTerminal(0);
?SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"zhiguoxin666,SEGGER?RTT?Terminal?0!\r\n");
?SEGGER_RTT_SetTerminal(1);
?SEGGER_RTT_printf(0,RTT_CTRL_TEXT_GREEN"zhiguoxin666,SEGGER?RTT?Terminal?1!\r\n");
?SEGGER_RTT_SetTerminal(2);
?SEGGER_RTT_printf(0,RTT_CTRL_TEXT_BLUE"zhiguoxin666,SEGGER?RTT?Terminal?2!\r\n");
?delay_ms(1000);
}
編譯、鏈接、下載,觀察現(xiàn)象:
紅色
綠色
藍(lán)色

4、使用printf重定向

項(xiàng)目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT組件,則會(huì)非常方便。使用的方法是直接使用RTT提供的API實(shí)現(xiàn)fputc。
原子的例程
重定義fputc函數(shù)//重定義fputc函數(shù)?
int?fputc(int?ch,?FILE?*f)
{??
????SEGGER_RTT_PutChar(0,?ch);
?return?ch;
}
替換之前的代碼:while(1)
{
?printf("zhiguoxin666?,printf?SEGGER?RTT?Terminal!\r\n");
?delay_ms(1000);
}
編譯、鏈接、下載
結(jié)語:RTT和USRAT各有優(yōu)點(diǎn),要根據(jù)不同的情況選擇,如果遇到一個(gè)顯示項(xiàng)目沒有預(yù)留串口用來調(diào)試打印信息,可以用這個(gè)的方法。當(dāng)然打印調(diào)試還有很多方法,這只是其中的一種,如果你還有更好的方法,歡迎評(píng)論區(qū)留言。-END-


大家好,我是張巧龍,一名教電子的大學(xué)老師,歡迎關(guān)注!

?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉