while(1){SEGGER_RTT_SetTerminal(0);SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"Hello, SEGGER RTT Terminal 0!\r\n");SEGGER_RTT_SetTerminal(1);SEGGER_RTT_printf(0,RTT_CTRL_TEXT_GREEN"Hello, SEGGER RTT Terminal 1!\r\n");SEGGER_RTT_SetTerminal(2);SEGGER_RTT_printf(0,RTT_CTRL_TEXT_YELLOW...
int GetKey; /* 配置通道0,上行配置(STM32->RTT Viewer软件) */ SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); /* 配置通道0,下行配置(RTT Viewer软件->STM32) */ SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP); ...
(1)SEGGER_RTT_WriteString() 输出显示字符 (2)SEGGER_RTT_printf()普通信息输出,但不支持浮点数
CONFIG_RTT_CONSOLE=y CONFIG_USE_SEGGER_RTT=y CONFIG_SHELL_BACKEND_RTT=y 通过打开这几个配置变量,重新编译Zephyr代码,当我们想要通过调用printk来打印时,即可实现通过Segger RTT来进行输出: 让我们来看下具体实现,通过单步调试,打开printk的源代码,我们可以看到,其底层实际上调用的是SEGGER_RTT_Write()函数: 这...
CONFIG_RTT_CONSOLE=y CONFIG_USE_SEGGER_RTT=y CONFIG_SHELL_BACKEND_RTT=y 通过打开这几个配置变量,重新编译Zephyr代码,当我们想要通过调用printk来打印时,即可实现通过Segger RTT来进行输出: 让我们来看下具体实现,通过单步调试,打开printk的源代码,我们可以看到,其底层实际上调用的是SEGGER_RTT_Write()函数: 这...
把RTT文件夹放到项目里面去,这些文件都放进去 然后MDK里面建立一个新的文件夹命名为 SEGGER_RTT,然后将相应的 C 文件引入进工程: include文件夹也需要加入到 C/C++的的环境变量中,这样可以在工程中比较方便的引用。 现在你就可以用如下的代码就行打印的测试了: ...
SEGGER_RTT_printf(0,"SEGGER_RTT_printf %d\r\n", a); 打开J-Link RTT Viewer软件 RTT Viewer打印结果如下: 输入测试: inta;while(1) {if((a = SEGGER_RTT_WaitKey()) >0) { SEGGER_RTT_SetTerminal(0); SEGGER_RTT_printf(0,"SEGGER_RTT_GetKey = %c\r\n", a); ...
既然segger_rtt_printf可能不支持浮点数打印,我们可以编写一个辅助函数,使用标准C库中的sprintf函数将浮点数格式化为字符串,然后通过segger_rtt_printf打印这个字符串。 将浮点数转换为字符串格式: 在辅助函数中,使用sprintf函数来进行浮点数的格式化。下面是一个示例辅助函数,它接受一个浮点数和一个字符数组作为参数,...
SEGGER RTT使用总结 RTT的使用本身很简单,只需要将源代码加入工程,修改SEGGER_RTT_Conf.h配置后就可以直接使用。 本人在实际开发项目中遇到过一个问题,裸机都没问题,但是移植FreeRTOS后,J-Link RTT
SEGGER_RTT_printf(0,"SEGGER_RTT_printf %d\r\n", a); 打开J-Link RTT Viewer软件 RTT Viewer打印结果如下: 输入测试: inta;while(1) {if((a = SEGGER_RTT_WaitKey()) >0) { SEGGER_RTT_SetTerminal(0); SEGGER_RTT_printf(0,"SEGGER_RTT_GetKey = %c\r\n", a); ...