1、实验环境
1.1 软件环境
RT-Thread Studio
1.2 硬件环境
ART-PI
2、实验过程
昨晚菜哥想在使用rt_kprintf将一个浮点数打印输出到终端上面,本来觉得是一件非常简单的事情,嘻嘻,没想到,啪啪的打脸哇!绕了一圈愣是没有搞定哇!不过最后菜哥也是解决问题了,可能解决问题的手段比较菜哈!好啦,我们先来看看代码:
char *pdata = (char*)rt_malloc(sizeof(char)*16);
if(pdata == NULL){
return;
}
rt_memset(pdata, 0, 16);
wave_diff = 1.234;
rt_kprintf("wave_diff value:%.2f\n", wave_diff); //无法输出到终端上面
//想将浮点数格式化成字符串的形式来打印输出,可是还是不行哇!
rt_snprintf(pdata, maxsize, "%.2f", wave_diff); //在终端上面打印pdata的值,结果只有%f哦
最初的想法实想将浮点数转换为字符串进行输出,但是事实证明这种手段不得行,需要转换思路;但是后面尝试了一下标准库自带的snprintf函数,这个函数包含在标准库"stdio.h"当中;惊喜的发现竟然可以输出了哇,啧啧,这是什么情况呢!后面咨询了群里的大神,说是在RT-thread中要想输出浮点数需要配置,但是之前我是有配置过得,但是好像也不行哇!希望哪位大佬配置过,可以在留言区留言,我向大佬请教请教!最终我们来看看实验结果吧!
下面就是菜哥项目里面 用到的测试程序,最终是想要在液晶屏上面显示的!
3、实验结果
在液晶屏上面显示计算结果的浮点值,至于浮点数如何在touchgfx上面显示,请看看菜哥以往的文章哈!废话不多说,上图!
4、总结
最近菜哥忙的项目是有使用RT-Thread+touchgfx的组合拳,所以在做项目中遇到可能会遇到一些RT-Thread、touchgfx相关的问题,菜哥也会将遇到的问题以及解决方法分享给大家!若是文中哪里有说的不对的地方,欢迎小伙伴在评论区留言!最后,还是那句老话,博主是一个又菜又爱玩的人!