如何用?J-Link?來串口調(diào)試?
1、JLink仿真調(diào)試器
下載器五花八門,但是我只用JLink,小巧方便攜帶。對于單片機開發(fā)者一般所用的下載器基本就是JLink和ST-Link。這兩者功能差不多,JLink是SEEGER公司的,ST-Link是ST公司的,而且只支持ST系列的芯片。只用JLink下載器調(diào)試,原因就是這玩意體積小,只有四根線,用起來太方便了,YYDS!2、安裝JLink驅(qū)動
下載鏈接:https://www.segger.com/downloads/jlink/。買回來JLink驅(qū)動后,一般賣家都會提供JLink的驅(qū)動程序,驅(qū)動安裝完成后就可以下載調(diào)試程序了。
3、移植RTT
安裝完成就好辦了,RTT源碼包就在我們剛剛安裝的JLINK驅(qū)動的目錄里面。我的目錄是:D:\Software\SEGGER\JLink_V644b\Samples\RTT
D:\Software\SEGGER\JLink_V644b\Samples\RTT\SEGGER_RTT_V644b\RTT
RTT
分組,并將RTT
文件夾中的兩個.c
文件添加進來。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庫????
????Stm32_Clock_Init(336,8,2,7);???//設(shè)置時鐘,168Mhz
?delay_init(168);????????????????//初始化延時函數(shù)
?LED_Init();??????//初始化LED?
?
?while(1)
?{
?????????SEGGER_RTT_printf(0,"zhiguoxin666\r\n");
?}
}
JLinkRTTViewer.exe
5、RTT的使用技巧
1、RTT緩沖大小
有時候我們發(fā)現(xiàn)我們的信息不能完全的打印出來,可能是因為緩沖不夠,默認緩沖區(qū)大小事1K字節(jié),如果不夠可以改大一點。2、多虛擬端口使用
RTT支持向不同的虛擬端口中打印信息,使用方法如下。首先在RTT Viewer軟件中分別打開三個虛擬端口:{
?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)象:
3、修改打印字符顏色
RTT支持不同顏色的字符顯示。{
?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)象:
4、使用printf重定向
項目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT組件,則會非常方便。使用的方法是直接使用RTT提供的API實現(xiàn)fputc。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);
}
編譯、鏈接、下載
大家好,我是張巧龍,一名教電子的大學(xué)老師,歡迎關(guān)注!