修改RTT源码方式: 修改代码部分内容: case 'f':{float fv = (float)va_arg(*pParamList, double); // 取出输入的浮点数值if(fv < 0) _StoreChar(&BufferDesc, '-'); // 判断正负号v = abs((int)fv); // 取正整数部分_PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags); ...
它以非常高的性能结合了 SWO 和半主机的优势。但是在笔者使用时(RTT v758版本),其暂时不支持浮点数打印的功能。我们可以通过修改源码添加该功能。 跳转到RTT>SEGGER_RTT_printf.c>SEGGER_RTT_vprintf(unsigned, const char*, va_list*)函数中。 找到原代码中判断输出类型的部分,是使用switch-case判断类型的。 /...
针对你的问题“segger_rtt_printf打印浮点数”,我将按照提供的提示进行回答: 确认segger_rtt_printf函数是否原生支持浮点数打印: SEGGER RTT(Real-Time Transfer)是一个高效的实时数据传输机制,通常用于嵌入式系统的调试。segger_rtt_printf是SEGGER RTT提供的一个类似于标准printf的函数,用于向主机发送格式化字符串。
使用方法如下: 1.在代码中加上RTT相关的代码文件: 2.根据自己的需要合理修改RTT的地址,如果没有特殊需求可以这样改,RTT占用SYD8811 的32K内存的最后的256Byte,也就是说RTT的首地址是0x20007F00: 3.编译下载运行后,使用《SYDTEK_Studio.e...