1、解决方法1(替换vsnprintf)反思
按上篇文章的解决方法1,rt_kprintf是可以打印浮点数了,但总觉得有些不好,如果直接替换vsnprintf就行那官方为什么不替换,是因为还要添加libc的支持,那不添加libc的话,rt_thread应该会自己提供实现打印浮点的方法吧。毕竟打印浮点数应该是一个挺普遍的需求,不应该没支持的,于是再次查阅资料发现了解决方法2。
如果之前按解决方法1(替换vsnprintf)操作,请先恢复rt_kprintf()
2、解决步骤
2.1、按下图1~5步,添加软件包rt_vsnprintf_full

2.2、注释kservice.c中rt_vsnprintf函数(777~1041行),重新编译即可。
注释rt_vsnprintf这一步是针对4.1.0以下的版本,下面是readme的截图,至于先注释再安装嘛,我是先安装才看到这个文档再根据提示注释的,也没问题。

本文介绍了如何在RT-Thread系统中解决打印浮点数的问题,通过添加rt_vsnprintf_full软件包并注释原有rt_vsnprintf函数,实现了浮点数的正确打印。该方法适用于不添加libc支持的情况。

1884





