打印
[AVR单片机]

在avr studio6.1下面sprintf函数应用

[复制链接]
2133|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qq4988|  楼主 | 2014-8-19 15:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
就下面这几句程序来说,tt应该等于多少?按理论来说   tt=3;但是实际上(烧进单片机后)为   15,这是为什么???????
       char  aa[10];
       uint16 tt=0;       
       sprintf(aa,"%1.3lf",3.141592);
       tt = aa[0]-0x30;

相关帖子

沙发
huangxz| | 2014-8-22 09:05 | 只看该作者
很简单,这是因为avr的架构决定你的编译结果满足你的要求,avr不是内存统一的架构,所以你的常数寻址出错了

使用特权

评论回复
板凳
qq4988|  楼主 | 2014-8-22 09:41 | 只看该作者
huangxz 发表于 2014-8-22 09:05
很简单,这是因为avr的架构决定你的编译结果满足你的要求,avr不是内存统一的架构,所以你的常数寻址出错了 ...

那就是说,AVR不支持这个函数了?

使用特权

评论回复
地板
huangxz| | 2014-8-22 11:27 | 只看该作者
qq4988 发表于 2014-8-22 09:41
那就是说,AVR不支持这个函数了?

支持,只是你的使用方式不对啊

使用特权

评论回复
5
qq4988|  楼主 | 2014-8-22 12:15 | 只看该作者
huangxz 发表于 2014-8-22 11:27
支持,只是你的使用方式不对啊

请指点,应该如何使用

使用特权

评论回复
6
huangxz| | 2014-8-22 17:07 | 只看该作者
本帖最后由 huangxz 于 2014-8-22 17:10 编辑
qq4988 发表于 2014-8-22 12:15
请指点,应该如何使用

# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt

使用特权

评论回复
7
qq4988|  楼主 | 2014-8-22 19:52 | 只看该作者
huangxz 发表于 2014-8-22 17:07
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf  ...

谢谢你啊

使用特权

评论回复
8
chiyoohui| | 2015-8-11 09:28 | 只看该作者
huangxz 发表于 2014-8-22 17:07
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf  ...

请教下,这个该怎么设置?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

781

帖子

5

粉丝