文章目录

  • 前言
  • 一、安装J-Link驱动
  • 二、查找RTT源文件
  • 三、使用
  • 四、打开J-Link RTT Viewer
  • 五、输出不同颜色的文字
  • 六、自定义封装一下
  • 七、float类型输出

前言

在嵌入式开发过程中,经常需要进行打印调试,通常使用串口进行打印输出,
但通常串口资源有限,这时就可以通过J-Link工具里面自带的RTT实现打印,从而节约一个串口资源。


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装J-Link驱动

J-Link官网下载驱动

驱动自行选择一个版本进行安装,不建议安装太高的版本,毕竟大家使用的J-Link可能不是正品的。

二、查找RTT源文件

在J-Link驱动的安装路径下,找到RTT

最后直接将RTT添加到工程中即可(复制SEGGER_RTT_Conf.h到RTT文件夹)

三、使用

自行在工程中添加头文件,添加头文件的路径
使用非常简单,无需初始化,就添加下面3行代码就可以输出

#include "SEGGER_RTT.h"
SEGGER_RTT_SetTerminal(0);                       // 选择终端(输入0-15)
SEGGER_RTT_printf(0,"Terminal(0) text \r\n"); // 输出日志

四、打开J-Link RTT Viewer



不出意外就可以正常输出了

可以手动打开相对应的终端

五、输出不同颜色的文字

大家可以输入以下代码,体验一下

SEGGER_RTT_SetTerminal(0);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"Terminal(0)\r\n");SEGGER_RTT_SetTerminal(1);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_BRIGHT_RED"Terminal(1)\r\n");SEGGER_RTT_SetTerminal(2);
SEGGER_RTT_printf(0,RTT_CTRL_BG_BRIGHT_RED"Terminal(2)\r\n");

六、自定义封装一下

如果在程序中直接调用下面这两行代码,能用,但是感觉不优雅。

SEGGER_RTT_SetTerminal(0);
SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"Terminal(0)\r\n");

我们可以使用#define进行定义一下

#define LOG_DATA(fmt, ...) SEGGER_RTT_SetTerminal(0); SEGGER_RTT_printf(0, fmt, ##__VA_ARGS__)#define LOG_STATUS(fmt, ...) SEGGER_RTT_SetTerminal(1); SEGGER_RTT_printf(0, fmt, ##__VA_ARGS__)#define LOG_ERROR(fmt, ...) SEGGER_RTT_SetTerminal(2); SEGGER_RTT_printf(0, fmt, ##__VA_ARGS__)

在程序中调用下面封装好得宏,简单又优雅 不支持输出中文的

LOG_DATA("LOG_DATA\r\n");LOG_STATUS("LOG_STATUS\r\n");LOG_ERROR("LOG_ERROR\r\n");

七、float类型输出

是无法直接打印float类型数据的

float float_data  = 3.14;
LOG_DATA("float_data = %f \r\n",float_data );

不过我们可以借用sprintf函数

#include<stdio.h>char str[40];
float float_data  = 3.14;sprintf(str,"float_data = %f \r\n",float_data );
LOG_DATA("%s",str);

J-Link RTT调试 教程相关推荐

  1. Chrome浏览器及调试教程

    ==>(微信公众号:IT知更鸟)欢迎关注<^>@<^> Chrome浏览器及调试教程 在web开发过程中,我们在写JavaScript脚本时难免会遇到各种bug,这时,我 ...

  2. Chrome浏览器调试教程

    ==>(微信公众号:IT知更鸟)欢迎关注<^>@<^> Chrome浏览器及调试教程 引言 在web开发过程中,我们在写JavaScript脚本时难免会遇到各种bug,这 ...

  3. RDA5807M收音机调试教程

    本博文通过解析RDA FM原厂驱动RDA_FM5807P_drv_V3.3代码来进行讲解,实现RDA5807N系列收音机,可以通过读ID的方式兼容RDA5807P.RDA5807SP.RDA5807S ...

  4. c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程

    c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程 转载于:https://www.cnblogs.com/Littl ...

  5. GDB调试教程:1小时玩转Linux gdb命令

    原文链接:http://c.biancheng.net/gdb/ GDB 入门教程 本教程以下面的代码为例,在 Linux 系统下来讲解 GBD 的调试流程: int main (void) {uns ...

  6. RASP | 远程Java应用的RASP调试教程

    远程Java应用的RASP调试教程 介绍 Java RASP是基于Java Agent技术实现的,而Java Agent代码无法独立启动,必须依赖于一个Java运行时程序才能运行. 如何调试一个Jav ...

  7. C语言调试教程总结(以visual studio和Dev C++为例)

    文章目录 一.前言 二.调试的概念以及调试器的选择 调试器(Debugger) 1) Remote Debugger 2) WinDbg 3) LLDB 4) GDB 三.设置断点,开始调试 断点的真 ...

  8. keil uvision4 调试教程

    keil uvision4 调试教程 软件的下载和安装 相关环境的配置 新建工程,新建文件 新建文件 调试程序 其他问题 如何设置单片机的时钟周期 只是作者复习用,不喜勿喷,博主玻璃心hhhh 已ST ...

  9. 艾肯Cube 4Nano MicU声卡等型号安装调试教程

     艾肯声卡是用来网络直播或者后期混音编曲的一种声卡类型,是连接在我们电脑USB接口上的,它的型号有很多种,比如:艾肯[icon]Cube 4Nano ,MicU,Ultra 4,micu solo , ...

最新文章

  1. 替换IP java代码
  2. 常用的函数式接口_Consumer接口
  3. ES5-16【utils】数组方法、类数组
  4. ubuntu下面 将桌面换成 英文
  5. 知识图谱应用实战案例100篇(一)-阿里巴巴超大规模知识图谱预训练实践:商品分类
  6. 床位的摆放有五大禁忌
  7. 2017.4.16 车站 思考记录
  8. CentOS7网络配置ping通外网
  9. 如何挖掘评论中的关键信息
  10. PHP什么架构,PHP是什么-PHP的架构及道理概述_后端开发
  11. 雪花算法生成数字id_全局唯一iD的生成 雪花算法详解及其他用法
  12. c语言课件谭浩强ppt下载,c语言课件谭浩强
  13. python处理地震sac数据_地震数据SAC格式
  14. 【遗传算法】求解TSP问题
  15. [CGAL] CGAL的编译与使用
  16. IBM FlashSystem掌控现代存储,靠的是硬实力
  17. 张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质
  18. 物联网开发常用的开发板_物联网开发人员简介:物联网开发人员调查的结果
  19. 【1024程序员节】创作创富-对话议题-直播笔记
  20. 少儿知识付费做好内容是关键

热门文章

  1. 格雷希尔GripSeal能为设备集成商做什么?
  2. DNSPod十问香文斌:DevOps 砸了中国程序员的饭碗?
  3. Hive建表时指定分隔符或使用多字符分隔
  4. HTML5基础 上
  5. 年终汇报PPT肯定会被忽视的一个小细节,改掉它,必上档次!
  6. ARK女神也押注房产交易,OPEN、Z、为何备受青睐?
  7. .tpl 文件高亮配置
  8. Ubuntu和Win双系统连接罗技蓝牙键盘/鼠标时:在win下Keys下面没有对应linux设备的蓝牙地址
  9. 优化增强只是原因 3 在 Intel® Iris™ 显卡的系统上
  10. UVa 469 - Wetlands of Florida