本帖最后由 FSL_TICS_Robin 于 2014-7-18 14:30 编辑
【经验分享】Kinetis IAR工程下无法打印浮点的问题解决
一,问题描述
大家在使用
kinetis IAR工程,并且想使用printf打印出浮点变量的时候,会发现打出来的浮点结果只有f,而使用Keil工程就能够正确打印。网上有很多的说法,其中说的最多的就是设置IAR的Library options 下printf formatter为full功能,如下图:
4.jpg (64.61 KB, 下载次数: 0)
下载附件
2014-7-11 15:18 上传
图4
5,在common.h的头文件中添加stdio.h,如下:
#include "stdio.h"
6,检查write.c,read.c中的串口发送函数和工程驱动包中uart.c的定义是否一致,如果不一致需要修改成uart.c定义的形式。
经过上面的配置,加入浮点代码,就可以打印浮点数了。
同样如问题描述中的定义,打印出的结果如下:
temp=36.500000
可以看到以及能够成功打印。
其余的KE,K,KV的修改方法都是一样的,大家可以自行测试。
三,附件分享
为了防止大家在修改过程中出现问题,这里给大家一些参考工程,分别给出KL,KE,以及KV系列的,K系列的大家可以参考50M的代码:KINETIS_50MHZ_SC。
【经验分享】Kinetis IAR工程下无法打印浮点的问题解决.pdf
(291.49 KB, 下载次数: 10)
2014-7-11 15:18 上传
点击文件名下载附件
KE_IAR_float.rar
(244.69 KB, 下载次数: 7)
2014-7-11 15:18 上传
点击文件名下载附件
KL25_IAR_float.rar
(370.52 KB, 下载次数: 5)
2014-7-11 15:18 上传
点击文件名下载附件
KV_IAR_float.rar
(607.38 KB, 下载次数: 4)
2014-7-11 15:18 上传
点击文件名下载附件
semihosting.rar
(2.04 KB, 下载次数: 6)
2014-7-11 15:18 上传
点击文件名下载附件
PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营的飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。
一周热门 更多>