首页 » 通讯 » 嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化

嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化

雨夜梧桐 2024-11-30 09:05:56 0

扫一扫用手机浏览

文章目录 [+]

RTT在双向上都支持多个通道,直至主机和目标,都可以用于不同目的,并为用户供应最大的自由度。

RTT默认实现是每个方向利用一个通道,该通道用于可打印的终端输入和输出。
利用J-Link RTT Viewer,该通道可用于多个“虚拟”终端,从而仅利用一个目标缓冲区即可打印到多个窗口(例如,一个用于标准输出,一个用于缺点输出,一个用于调试输出)。
例如,可以利用一个附加的(主机)通道来发送配置文件或事宜跟踪数据。

嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化 嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化 通讯

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

嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化 嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超具体)_接口_初始化 通讯
(图片来自网络侵删)
在【开始】菜单栏可以看到快捷办法 【Segger RTT Viewer Vxxx.exe】,我这里安装了 V6.44c 的版本

去到刚刚安装文件的目录,可以看到对应Jlink版本的 RTT 驱动的压缩

解压,可以见到驱动文件

将上面赤色框的文件,复制到 SMT32 工程文件中,加入到 KEIL 工程中

并将其 头文件 也包含进工程

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!
】print_log("print a log\n"); //}
2.3 效果演示

硬件上,Jlink 连接线 连接到 STM32上,打开 【Segger RTT Viewer Vxxx.exe】,连接芯片,我这里选择的是 STM32F7676IG,请根据自己所用的芯片进行选择

可以在 【log】标签页看到连接信息

将程序编译并烧录进 STM32,可以看到代码里面写的调试信息输出到 【 Segger RTT 】中,大功告成!


总结

以上是 stm32 实现 Segger RTT 打印 的全部内容,本文仅仅先容了 Segger RTT 的利用,Segger RTT 的利用可以让我们节省一个串口的占用,还可以降落串口打印可能涌现对系统实时性的影响。

完全代码可进群免费领取!


嵌入式物联网的学习之路非常漫长,不少人由于学习路线不对或者学习内容不足专业而错失落高薪offer。
不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。
点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!
记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

标签:

相关文章

技能|电脑无法通电怎么解决_戴尔_电脑

如果按下电源按钮后戴尔打算机无法打开,不通电,请按照以下步骤打消故障。视频加载中...01检讨电源线、互换适配器与外设首先检讨电源...

通讯 2025-01-24 阅读1 评论0