在 RT-Thread 的 BSP 工程中打印浮点数时,遇到 rt_vsnprintf_full 软件包不可用的问题,通常是因为 该软件包已被废弃,其功能已整合到 RT-Thread 内核中。以下是解决方案:
方法 1:开启内核浮点数打印支持(推荐)
进入内核配置:
在 env 工具中执行 menuconfig,导航到以下路径:
RT-Thread Kernel → Kernel Device → Enable printf functions → [*] Enable printf float functions

保存配置:
按空格键勾选 Enable printf float functions,保存配置并退出 menuconfig。
编译工程:
重新生成项目(scons --target=...)并编译。此时 rt_kprintf 和 rt_snprintf 等函数已支持浮点数格式(如 %f)。
方法 2:手动修改配置文件(备选)
如果 menuconfig 中无此选项,需手动修改 rtconfig.h:
- 在工程根目录下的
rtconfig.h 文件中添加:
#define RT_PRINTF_USING_FLOAT
- 重新编译工程。
补充说明
rt_vsnprintf_full 已废弃:
该软件包仅存在于旧版 RT-Thread(如 v3.x),在新版内核中已集成浮点数支持,不再需要额外软件包。
确认内核版本:
执行 pkgs --update 更新软件包索引后,若仍无 rt_vsnprintf_full,说明当前内核版本(可能 ≥ v4.0.0)已内置支持。
资源占用提醒:
开启浮点数打印会增加 Flash 占用(约 10KB),若资源紧张,建议减少浮点数使用。
通过上述任一方法,即可在 BSP 工程中正常打印浮点数。推荐优先使用 方法 1(内核配置选项),无需额外软件包。
在 RT-Thread 的 BSP 工程中打印浮点数时,遇到 rt_vsnprintf_full 软件包不可用的问题,通常是因为 该软件包已被废弃,其功能已整合到 RT-Thread 内核中。以下是解决方案:
方法 1:开启内核浮点数打印支持(推荐)
进入内核配置:
在 env 工具中执行 menuconfig,导航到以下路径:
RT-Thread Kernel → Kernel Device → Enable printf functions → [*] Enable printf float functions

保存配置:
按空格键勾选 Enable printf float functions,保存配置并退出 menuconfig。
编译工程:
重新生成项目(scons --target=...)并编译。此时 rt_kprintf 和 rt_snprintf 等函数已支持浮点数格式(如 %f)。
方法 2:手动修改配置文件(备选)
如果 menuconfig 中无此选项,需手动修改 rtconfig.h:
- 在工程根目录下的
rtconfig.h 文件中添加:
#define RT_PRINTF_USING_FLOAT
- 重新编译工程。
补充说明
rt_vsnprintf_full 已废弃:
该软件包仅存在于旧版 RT-Thread(如 v3.x),在新版内核中已集成浮点数支持,不再需要额外软件包。
确认内核版本:
执行 pkgs --update 更新软件包索引后,若仍无 rt_vsnprintf_full,说明当前内核版本(可能 ≥ v4.0.0)已内置支持。
资源占用提醒:
开启浮点数打印会增加 Flash 占用(约 10KB),若资源紧张,建议减少浮点数使用。
通过上述任一方法,即可在 BSP 工程中正常打印浮点数。推荐优先使用 方法 1(内核配置选项),无需额外软件包。
举报