修改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判断类型的。 /...