RTT在双向上都支持多个通道,直至主机和目标,都可以用于不同目的,并为用户供应最大的自由度。
RTT默认实现是每个方向利用一个通道,该通道用于可打印的终端输入和输出。 利用J-Link RTT Viewer,该通道可用于多个“虚拟”终端,从而仅利用一个目标缓冲区即可打印到多个窗口(例如,一个用于标准输出,一个用于缺点输出,一个用于调试输出)。 例如,可以利用一个附加的(主机)通道来发送配置文件或事宜跟踪数据。

二、利用步骤1.引入驱动库首先在官网选择得当的版本下载并安装 Jlink

并将其 头文件 也包含进工程
2.实现 log 打印输出2.0 编译选项把稳
一定要 取消 这个勾选!
!
!
2.1 直策应用
在 main 函数调用初始化,然后直接可以利用
#include "SEGGER_RTT.h"/ @brief The application entry point. @retval int /int main(void){SEGGER_RTT_Init();SEGGER_RTT_printf(0, "Hello world !"); // 原接口}2.2 封装利用(推举)
也可以封装接口:
/----------------------------------------------------------- Includes files ----------------------------------------------------------// segger rtt includes. /#include "SEGGER_RTT.h"#include "SEGGER_RTT_Conf.h"#define BUFFER_INDEX 0/! @brief 封装 RTT 打印接口 实行条件:无 @retval: 无/void print_log(const char sFormat, ...){va_list ParamList;va_start(ParamList, sFormat);SEGGER_RTT_vprintf(BUFFER_INDEX, sFormat, &ParamList);va_end(ParamList);}/! @brief 初始化 RTT 打印接口 实行条件:无 @retval: 无/void segger_rtt_init(char str){SEGGER_RTT_Init();print_log(str); // 封装接口,无需填写 BUFFER_INDEX}
在 main 中初始化和打印:
#include "bsp_printlog.h" //封装接口的 .c 文件的头文件/ @brief The application entry point. @retval int /int main(void){segger_rtt_init("Demo start !"); // 调用这句进行初始化以及打印开机信息【Demo start!2.3 效果演示
】print_log("print a log\n"); //}
硬件上,Jlink 连接线 连接到 STM32上,打开 【Segger RTT Viewer Vxxx.exe】,连接芯片,我这里选择的是 STM32F7676IG,请根据自己所用的芯片进行选择
可以在 【log】标签页看到连接信息
将程序编译并烧录进 STM32,可以看到代码里面写的调试信息输出到 【 Segger RTT 】中,大功告成!
!
!
以上是 stm32 实现 Segger RTT 打印 的全部内容,本文仅仅先容了 Segger RTT 的利用,Segger RTT 的利用可以让我们节省一个串口的占用,还可以降落串口打印可能涌现对系统实时性的影响。
完全代码可进群免费领取!
!
!
嵌入式物联网的学习之路非常漫长,不少人由于学习路线不对或者学习内容不足专业而错失落高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!
记得点赞、关注、收藏、转发哦!
点击这里找小助理0元领取:扫码进群领资料






