打印
[技术问答]

RTT的使用技巧

[复制链接]
121|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
louliana|  楼主 | 2025-3-31 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、RTT缓冲大小
有时候我们发现我们的信息不能完全的打印出来,可能是因为缓冲不够,默认缓冲区大小事1K字节,如果不够可以改大一点。

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


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

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


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

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

原子的例程
重定义fputc函数
//重定义fputc函数 
int fputc(int ch, FILE *f)
{  
    SEGGER_RTT_PutChar(0, ch);
return ch;
}


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


编译、链接、下载


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

1424

帖子

1

粉丝