单片机发论文 嵌入式小技巧:单片机STM32 实现 SEGGER RTT 打印(超详细)
大家好,今天给大家介绍基于单片机STM32实现 RTT 打印,文章末尾附有本毕业设计的论文和源码的获取方式,可进群免费领取。
前言
嵌入式的开发离不开log的打印,我们常常使用的是重定向到串口打印输出,但是会对系统的实时性产生一定的影响,RTT技术可以在一定程度解决这个问题。
一、RTT 是什么?
使用RTT(Real Time ),可以从目标微控制器输出信息,以及以很高的速度将输入发送到应用程序,而不会影响目标的实时行为。 RTT可与任何J-Link模型和支持后台内存访问的任何受支持的目标处理器一起使用,这些处理器是-M和RX目标。
RTT在双向上都支持多个通道,直至主机和目标,都可以用于不同目的,并为用户提供最大的自由度。
RTT默认实现是每个方向使用一个通道,该通道用于可打印的终端输入和输出。 使用J-Link RTT ,该通道可用于多个“虚拟”终端,从而仅使用一个目标缓冲区即可打印到多个窗口(例如,一个用于标准输出,一个用于错误输出,一个用于调试输出)。 例如,可以使用一个附加的(主机)通道来发送配置文件或事件跟踪数据。
二、使用步骤1.引入驱动库
并将其 头文件 也包含进工程
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 logn"); //
}
2.3 效果演示
硬件上,Jlink 连接线 连接到 STM32上,打开 【 RTT Vxxx.exe】,连接芯片,我这里选择的是 ,请根据自己所用的芯片进行选择
可以在 【log】标签页看到连接信息
将程序编译并烧录进 STM32,可以看到代码里面写的调试信息输出到 【 RTT 】中,大功告成!!!
总结
以上是 stm32 实现 RTT 打印 的全部内容,本文仅仅介绍了 RTT 的使用, RTT 的使用可以让我们节省一个串口的占用,还可以降低串口打印可能出现对系统实时性的影响。
完整代码可进群免费领取!!!
嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!
点击这里找小助理0元领取:扫码进群领资料
