if (SEGGER_RTT_HasKey()) /* 判断接收缓冲区中是否有数据 */ { GetKey = SEGGER_RTT_GetKey(); /* 从接受缓冲区中取出一个字符 */ SEGGER_RTT_SetTerminal(1); SEGGER_RTT_printf(0, "GetKey = %c\r\nHello world! Today is %.4d-%.2d-%.2d",
如上面的宏定义,我们在RTT_printf外面又套了一层壳子,除了我们原本打印的数据外,我们在增加了一头一尾,让我们打印的数据被两个特殊字符包裹起来。 从定义的命名中可以看出,前面的是color,颜色。后面的是一个特殊的控制字符RESET,表示这部分颜色结束了。 在RTT的宏定义文件中是这样定义的: 我通过C#调用了JLINKARM....
SEGGER为jlink提供了各种工具,例如J-Scope,RTT(Real Time Transfer)等。今天的内容就是把RTT Client嵌入到VS Code中。 最终效果:只插一个Jlink,使用SWD接口,无需占用串口,无需SWO引脚,实现日志printf输出(带颜色)如下: 1 为什么需要日志 虽然利用断点、调用堆栈和变量窗口能很方便地进行调试,但是在一些情况下,是不...
下载RTT文件链接 点击下载RTT文件: 提取码:9yce 加入SEGGER_RTT.c SEGGER_RTT_printf.c sdk_config.h stm_log.h 等文件到工程中 在main.c中引用stm_log.h头文件 在main中调用RTT_INIT() 在main loop中调用 NRF_LOG_INFO("Running is in main loop" NRF52832-DFU-Bootloader源码详解 \pca10040_ble Kei...
RTT 目录往往在:~\JLink_V798a\Samples\RTT\SEGGER_RTT_V798a\RTT 直接将整个 RTT 文件夹拖入工程即可 注意修改 CmakeLists.txt 文件 3.2 定义 LOG.H 文件方便调用 SEGGER_API 接口 SEGGER 官方提供的接口较为繁琐,所以往往可以使用 LOG.H 宏定义一边接口,并且重定向到 printf ...
SEGGER RTT printf 是一个用于在实时操作系统(RTOS)中进行浮点数打印的函数。它允许用户在RTOS中以特定的格式输出浮点数,例如IEEE 754标准。以下是一个简单的介绍: 1. SEGGER RTT printf 函数原型: void SEGGER_RTT_printf(const char format, ...); 2. 参数说明: - `format`:一个字符串,表示要打印的浮点...
设置好点击OK就可以开始愉快的看日志了(SEGGERRTTprintf函数的第一个参数就是指定在哪个Terminal窗口显示,默认是0。 五、封装RTT库接口 使用RTT毕竟是拿来打日志的,直接调用printf还是比较麻烦的,不如重新封装一下,先来看看效果: 有了各种信息的标记以及不同的颜色,是不是显得优雅了很多,我们来看如何做到这样。 首先...
既然segger_rtt_printf可能不支持浮点数打印,我们可以编写一个辅助函数,使用标准C库中的sprintf函数将浮点数格式化为字符串,然后通过segger_rtt_printf打印这个字符串。 将浮点数转换为字符串格式: 在辅助函数中,使用sprintf函数来进行浮点数的格式化。下面是一个示例辅助函数,它接受一个浮点数和一个字符数组作为参数,...
SEGGER 的实时传输 (RTT) 是一种用于嵌入式应用程序中交互式用户 I/O 的技术。它以非常高的性能结合了 SWO 和半主机的优势。但是在笔者使用时(RTT v758版本),其暂时不支持浮点数打印的功能。我们可以通过修改源码添加该功能。 跳转到RTT>SEGGER_RTT_printf.c>SEGGER_RTT_vprintf(unsigned, const char*, va_li...
I feel like I've perhaps gone down the wrong path, and need to try something else. I'd also like to have sl_app_assert() dump its errors on this interface so I know if the program has stopped unexpectedly. I had planned to use a macro to map printf(...