搜索
bottom↓
回复: 5

rt_kprintf()可以输出浮点么?

[复制链接]

出0入0汤圆

发表于 2011-10-16 23:10:51 | 显示全部楼层 |阅读模式
我写%F 直接输出%F 了

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-10-16 23:15:25 | 显示全部楼层
请问rt_kprintf和rt_sprintf为何不能输出浮点数?: http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4971352

出0入0汤圆

 楼主| 发表于 2011-10-16 23:59:53 | 显示全部楼层
回复:
我使用的是MDK
是不是把这个线程的栈空间8字节对齐后,就可以用rt_sprintf()从串口打印浮点数了呢?

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

出0入0汤圆

 楼主| 发表于 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[16];

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

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

出0入0汤圆

发表于 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

出0入0汤圆

发表于 2012-2-11 22:08:14 | 显示全部楼层
貌似是由于缺少个库,fcvt把
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 11:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表