<STM32> STM32开发工具---Segger RTT调试组件使用

STM32开发工具—Segger RTT调试组件使用

前言:SeggerRTT可代替串口调试输出功能使用,如果因为电路设计,及资源运用问题,导致不能提供串口接口的话,使用SeggerRTT作为实际的调试输出接口是非常适合使用的。

一、获取SeggerRTT,文件
可通过连接获取,内包含文档教程以及SeggerRTT组件源码工程。
SeggerRTT组件文件下载连接:SeggerRTT
获取到压缩包后,解压文件,文件夹内包含:
JLink_Windows_V644e.exe :是JLink软件,需要先安装此软件,用以RTT输出终端;
V4-工程调试利器SEGGER的RTT组件,替代串口调试.rar:SeggerRRT的组件源码,解压后文件内有个“SEGGER”文件夹就是源码所在。
专题教程第5期:工程调试利器SEGGER的RTT组件,替代串口调试.pdf:教程文档。
<STM32> STM32开发工具---Segger RTT调试组件使用_第1张图片

二、移植SeggerRTT
1、将”V4-工程调试利器SEGGER的RTT组件,替代串口调试.rar”解压后的文件夹内的“SEGGER”文件夹复制到对应的工程目录下:
如:
<STM32> STM32开发工具---Segger RTT调试组件使用_第2张图片

2、将SEGGER目录下的文件添加到工程中;
如:
<STM32> STM32开发工具---Segger RTT调试组件使用_第3张图片

3、添加SEGGER组件的头文件路径;
如:
<STM32> STM32开发工具---Segger RTT调试组件使用_第4张图片

4、在主函数文件,添加头文件名;
如:

#include "SEGGER_RTT.h"

<STM32> STM32开发工具---Segger RTT调试组件使用_第5张图片

5、在主函数添加初始化SEGGER代码,放到系统时钟初始化 后面在初始化。
如:

	/* RTT配置通道0,上行配置*/
	SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
	
	/* RTT配置通道0,下行配置*/	
	SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);

<STM32> STM32开发工具---Segger RTT调试组件使用_第6张图片

三、测试验证

1、在主函数或其它任务 内调用”RT_DBG_Printf“,即可测试输出;
如:

RT_DBG_Printf(MAIN_WIN,0,"123 \r\n"); //输出字符串
RT_DBG_Printf(MAIN_WIN,0,"val:%d\r\n",val); //输出整数
HAL_Delay(1000);

其中:
MAIN_WIN:表示选择的输出窗口;
0:表示缓冲区的ID,默认0即可;
其余参数,参考printf函数使用,后面与printf使用方法移植,但是不可输出浮点数和中文,否则会乱码。
<STM32> STM32开发工具---Segger RTT调试组件使用_第7张图片

2、编译下载查看输出
打开前面安装的JLink_Windows_V644e.exe,开始菜单-》SEGGER - J-Link V6.44e-》J-Link RTT Viewer V6.44e
<STM32> STM32开发工具---Segger RTT调试组件使用_第8张图片

在弹出的窗口选择所使用电路的芯片型号,选择完成后点击”OK“,即可查看窗口输出。
如:
<STM32> STM32开发工具---Segger RTT调试组件使用_第9张图片
由上图可看出,RTT移植输出成功。

你可能感兴趣的:(STM32CubeMX,STM32,stm32,单片机,arm)