yann-qu SEGGER_RTT_printf()函数添加打印浮点数功能 SEGGER 的实时传输 (RTT) 是一种用于嵌入式应用程序中交互式用户 I/O 的技术。它以非常高的性能结合了 SWO 和半主机的优势。但是在笔者使用时(RTT v758版本),其暂时不支持浮点数打印的功能。我们可以通过修改源码添加该功能。 跳转到RTT>SEGGER_RTT_printf....
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", GetKey, YEAR, MONTH, DAY); } } retu...
就拿最简单的J-Link RTT Viewer举例子,在开始菜单或者是搜索框找到它: 默认情况下只需设置需要调试的芯片跟调试器接口即可,可以参照下图: 设置好点击OK就可以开始愉快的看日志了(SEGGERRTTprintf函数的第一个参数就是指定在哪个Terminal窗口显示,默认是0。 五、封装RTT库接口 使用RTT毕竟是拿来打日志的,直接调用prin...
SEGGER_RTT_printf(0, "p = %d\r\n", *p); 1. 2. 3. 4. 5. 在调试模式下运行程序会停在SEGGER_HardFaultHandler.c文件中的void HardFaultHandler(unsigned int* pStack)函数中。 /*** * * HardFaultHandler() * * Function description * C part of the hard fault handler which is called by t...
SEGGER_RTT_printf(0,"test\n"); 如果MCU端要获得到RTT-T的数据,有两个地方需要留意 将MCU中RTT模块的接收缓存设置到合适的长度 MCU在程序中做如下轮训调用,以查询RTT发送过来的数据: #include"string.h"uint8_trtt_rx_data[33];voidstr_to_int(char*p,int32_t*pv){uint8_tsign;charc; ...
/** Author: Jayant Tang* Email: jayant97@foxmail.com*/#ifndef _LOG_H_#define _LOH_H_#include"SEGGER_RTT.h"#define LOG_DEBUG 1#if LOG_DEBUG#define LOG_PROTO(type,color,format,...) \SEGGER_RTT_printf(0," %s%s"format"\r\n%s", \color, \type, \##__VA_ARGS__, \RTT_CTRL_RE...
件“SEGGER_RTT.c”,“SEGGER_RTT.h”,“SEGGER_RTT_Conf.h”和“SEGGER_RTT_printf.c”添加到项⽬⾥。如果没有的话,去segger官⽹下载。然后我们就可以直接在主函数中调⽤SEGGER_RTT_printf函数来打印调试信息了,该函数⽤法和printf函数类似,只是多了⼀个参数⽤来指定RTT通道。其中通道0,就是...
IAR下的配置如下截图, gcc工具链下操作类似,MDK的连接脚本的语法没研究过~~~ 5.RTT的源码中没有实现类似printf("%f",...)打印浮点数,如实在需要打印浮点数,需修改RTT源码,其中一个关键点是理解C语言不定数量参数的函数实现方式
SEGGER_RTT_printf(0, "printf Test: %%5c, 'E' : %5c.\r\n", 'E'); SEGGER_RTT_printf(0, "printf Test: %%-5c, 'G' : %-5c.\r\n", 'G'); SEGGER_RTT_printf(0, "printf Test: %%5.3c, 'G' : %-5c.\r\n", 'G'); SEGGER_RTT_printf(0, "printf Test: %%.3c, 'E' ...