搜索
bottom↓
回复: 7

请教ICCAVR中sprintf转换为字符串的问题

[复制链接]

出0入0汤圆

发表于 2010-6-3 14:51:01 | 显示全部楼层 |阅读模式
#include <iom8v.h>
#include <stdio.h>
#define uchar unsigned char
#define uint  unsigned int
#include "USART.c"


void main()
{         

         float i=32.2;
         uchar num[5];
         uart_init(9600);//初始化串口
         while(1)
         {
        // send_str("asdfa\r");//测试串口
         sprintf(num,"%f",i);//格式化成为字符串
         send_str(num);//串口打印
         }
}
我这是一个简单的例程,就是把浮点数转换为字符串,按照标准格式写的,但是显示不出来,我在KEIL里面做测试能够转换出来,为什么在ICCAVR编译环境里面不行,请高手指教,

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

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

出0入0汤圆

发表于 2010-6-3 14:53:51 | 显示全部楼层
ICCAVR里好像sprintf是空函数

出0入0汤圆

 楼主| 发表于 2010-6-3 15:02:10 | 显示全部楼层
不是空函数,转换为无符号字符型都可以,就是转换浮点型的不行

出0入0汤圆

 楼主| 发表于 2010-6-8 12:43:54 | 显示全部楼层
怎么,没有人遇到过着样的问题吗·?

出0入0汤圆

发表于 2011-12-21 10:58:39 | 显示全部楼层
回复【楼主位】xiake017
-----------------------------------------------------------------------

unsigned long DWORD = 0xffffffff;

我用sprintf(buffer, "%lx", DWORD);

居然BUFFER里头的字符串数据是-1;搞到我焦头烂额,莫名其妙啊。

然后参考help,貌似写得很马虎喔。

...
The flags are:
...
  The conversion characters are as follows. If an 'l' (letter el) appears before an integer conversion character, then the argument is taken as a long integer.

...

但是输出的数据确实不太准确。

出0入0汤圆

发表于 2011-12-21 11:15:07 | 显示全部楼层
回复【楼主位】xiake017
#include &lt;iom8v.h&gt;
#include &lt;stdio.h&gt;
#define uchar unsigned char
#define uint  unsigned int
#include "usart.c"
void main()
{   
float i=32.2;
uchar num[5];
uart_init(9600);//初始化串口
while(1)
{
  // send_str("asdfa\r");//测试串口
sprintf(num,"%f",i);//格式化成为字符串
send_str(num);//串口打印
}
}
我这是一个简单的例程,就是把浮点数转换为字符串,按照标准格式写的,但是显示不出来,我在keil里面做测试能够转换出来,为什么在iccavr编译环境里面不行,请高手指教,
-----------------------------------------------------------------------


printf is supplied in three versions, depending on your code size and feature requirements (the more features, the higher the code size):


(原文件名:允许sprintf()转换32位数字串.jpg)

藏得很坑爹。。

出0入0汤圆

发表于 2012-6-2 23:56:31 | 显示全部楼层
6楼好样的,佩服

出0入0汤圆

发表于 2014-9-14 21:53:47 | 显示全部楼层
我最近也在写类似的程序,坑爹得很试了几个函数都不行 ICCAVR 竟然没有GCVT
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-4 02:20

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

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