SEGGER_RTT进阶使用过程

配置好了基本SEGGER_RTT使用后可以进阶下一阶段更好的使用这个工具,这个工具可以在不同的终端显示打印内容,按照描述,理论上还可以实现,不同的通道的配置,但是目前我并没完成对通道的配置工作,在软件中也没有找到配置通道的选项,如果有,可以交流介绍一下

1.对显示颜色的配置

// 简化版彩色输出函数
void ColorPrint(unsigned channel, const char* color, const char* message) {
    // 设置颜色
    SEGGER_RTT_WriteString(channel, color);
    
    // 写入消息
    SEGGER_RTT_WriteString(channel, message);
    
    // 重置颜色(避免影响后续输出)
    SEGGER_RTT_WriteString(channel, RTT_CTRL_RESET);
}

 2.测试代码

int main(void)
{
	extern SEGGER_RTT_CB _SEGGER_RTT;
	
	systick_config();
	
	// 初始化RTT
    SEGGER_RTT_Init();
	
	 
	// 配置通道1 - 关键修复:使用有效的缓冲区
    static char ch1_buffer[128]; // 为通道1分配专用缓冲区
    SEGGER_RTT_ConfigUpBuffer(1, "ColorTest", ch1_buffer, sizeof(ch1_buffer), SEGGER_RTT_MODE_NO_BLOCK_SKIP);
	SEGGER_RTT_ConfigUpBuffer(0, "Terminal", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
    
    // 测试消息
    const char* welcome = "\n=== RTT Color Channel Test ===\n\n";
    SEGGER_RTT_WriteString(0, welcome);
	
	SEGGER_RTT_SetTerminal(1);
	ColorPrint(0, RTT_CTRL_TEXT_YELLOW, "=== Channel 1: Counter messages ===\n\n");
	while (1)
	{   
		SEGGER_RTT_SetTerminal(0);
		// 通道0 - 系统状态(绿色)
        ColorPrint(0, RTT_CTRL_TEXT_GREEN, "[System] Running normally\n");
        
		SEGGER_RTT_SetTerminal(1);
        // 通道1 - 计数器(黄色)
        ColorPrint(0, RTT_CTRL_TEXT_YELLOW, "[System] Running normally\n");
		delay_1ms(1000);  // 非 HAL 环境用其他延时函数
	}
}

3.两个通道运行正常

4.注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值