majianjia 发表于 2011-10-16 23:10:51

rt_kprintf()可以输出浮点么?

我写%F 直接输出%F 了

aozima 发表于 2011-10-16 23:15:25

请问rt_kprintf和rt_sprintf为何不能输出浮点数?: http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4971352

majianjia 发表于 2011-10-16 23:59:53

回复:
我使用的是MDK
是不是把这个线程的栈空间8字节对齐后,就可以用rt_sprintf()从串口打印浮点数了呢?

我想问一下,就是rt_kprint rt_sprint 有什么不同?

majianjia 发表于 2011-10-17 11:58:26

成功输出浮点了,谢谢 aozima
我说一下我的方法。

在rtconfig.h里 将RT_ALIGN_SIZE 设为 8

在c文件里
#include"stdio.h"

然后用标准库的sprintf()将浮点转换成字符串,之后用rt_kprintf()输出字符串就行了。

#include"stdio.h" //sprintf()在这里面

char f_buf1;

sprintf(f_buf1, "%7.3f   ", final_angle.fYaw*180/ONE_PI); //final_angle.fYaw是弧度,浮点数

rt_kprintf("\nyaw = %s", f_buf1);//输出字符串

lovegoogle 发表于 2012-2-11 17:43:38

rt_kprintf应该是不可以输出float类型的,主要是调用vsnprintf,而该实现中并没有'f'的实现,参见:
http://www.castaglia.org/proftpd/doc/devel-guide/src/lib/vsnprintf.c.html#DECIMAL_STRING_LENGTH

lovegoogle 发表于 2012-2-11 22:08:14

貌似是由于缺少个库,fcvt把
页: [1]
查看完整版本: rt_kprintf()可以输出浮点么?