[技术问答] RTT的使用技巧

[复制链接]
 楼主| louliana 发表于 2025-3-31 11:30 | 显示全部楼层 |阅读模式
1、RTT缓冲大小
有时候我们发现我们的信息不能完全的打印出来,可能是因为缓冲不够,默认缓冲区大小事1K字节,如果不够可以改大一点。

默认1024字节2、多虚拟端口使用
RTT支持向不同的虚拟端口中打印信息,使用方法如下。
首先在RTT Viewer软件中分别打开三个虚拟端口:
编写代码
  1. while(1)
  2. {
  3. SEGGER_RTT_SetTerminal(0);
  4. SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER RTT Terminal 0!\r\n");
  5. SEGGER_RTT_SetTerminal(1);
  6. SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER RTT Terminal 1!\r\n");
  7. SEGGER_RTT_SetTerminal(2);
  8. SEGGER_RTT_printf(0,"zhiguoxin666,SEGGER RTT Terminal 2!\r\n");
  9. delay_ms(1000);
  10. }


编译、链接、下载,观察现象:

窗口0
窗口1
窗口23、修改打印字符颜色
RTT支持不同颜色的字符显示。
时用时在字符串前面加上对应颜色的宏定义就可以了。
  1. while(1)
  2. {
  3. SEGGER_RTT_SetTerminal(0);
  4. SEGGER_RTT_printf(0,RTT_CTRL_TEXT_RED"zhiguoxin666,SEGGER RTT Terminal 0!\r\n");
  5. SEGGER_RTT_SetTerminal(1);
  6. SEGGER_RTT_printf(0,RTT_CTRL_TEXT_GREEN"zhiguoxin666,SEGGER RTT Terminal 1!\r\n");
  7. SEGGER_RTT_SetTerminal(2);
  8. SEGGER_RTT_printf(0,RTT_CTRL_TEXT_BLUE"zhiguoxin666,SEGGER RTT Terminal 2!\r\n");
  9. delay_ms(1000);
  10. }


编译、链接、下载,观察现象:

红色
绿色
蓝色4、使用printf重定向
项目中使用printf的地方非常多,如果可以直接修改printf重定向到RTT组件,则会非常方便。使用的方法是直接使用RTT提供的API实现fputc。

原子的例程
重定义fputc函数
  1. //重定义fputc函数
  2. int fputc(int ch, FILE *f)
  3. {  
  4.     SEGGER_RTT_PutChar(0, ch);
  5. return ch;
  6. }


替换之前的代码:
  1. while(1)
  2. {
  3. printf("zhiguoxin666 ,printf SEGGER RTT Terminal!\r\n");
  4. delay_ms(1000);
  5. }


编译、链接、下载


您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

1581

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

41

主题

1581

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部