打印
[STM32F1]

float型如何转化为字符型

[复制链接]
楼主: Cjy_JDxy
手机看帖
扫描二维码
随时随地手机跟帖
41
linqing171| | 2017-9-26 21:16 | 只看该作者 回帖奖励 |倒序浏览
你的watch里面为什么不把 Water_Flow_Now 也加进来让我们也开开眼界,看看是内存溢出还是数据类型错误。

使用特权

评论回复
42
zhazhahua| | 2017-9-26 21:31 | 只看该作者
IICeeprom 发表于 2017-9-26 13:12
他既然是把float转换为char类型的,不用强制转换,难道还有什么好的办法? ...

字符就是char型的,所以这样比较直接啊

使用特权

评论回复
43
Cjy_JDxy|  楼主 | 2017-9-27 08:35 | 只看该作者
linqing171 发表于 2017-9-26 21:16
你的watch里面为什么不把 Water_Flow_Now 也加进来让我们也开开眼界,看看是内存溢出还是数据类型错误。 ...





使用特权

评论回复
44
IICeeprom| | 2017-9-27 08:41 | 只看该作者
Cjy_JDxy 发表于 2017-9-26 17:22
不是四舍五入啊,直接就是0啊。我用的keil5.21。你用的是KEIL4还是5啊?难道是人品问题吗?

...

就是做四舍五入的

使用特权

评论回复
45
Cjy_JDxy|  楼主 | 2017-9-27 10:02 | 只看该作者
IICeeprom 发表于 2017-9-27 08:41
就是做四舍五入的

我是说我的不是啊

使用特权

评论回复
46
linqing171| | 2017-9-27 11:29 | 只看该作者

把map文件中的sprintf相关的复制,贴上来。看看函数库是不是调用错了。

使用特权

评论回复
47
Cjy_JDxy|  楼主 | 2017-9-27 11:59 | 只看该作者
linqing171 发表于 2017-9-27 11:29
把map文件中的sprintf相关的复制,贴上来。看看函数库是不是调用错了。

哪儿有MAP文件啊

使用特权

评论回复
48
ticomi| | 2017-9-27 16:18 | 只看该作者
Prry 发表于 2017-9-25 18:20
如果标准库函数都不好用,相信没多人能写出比标准库还高效率的函数了

我写的一个比标准库的效率高多了,但是不代表什么。标准库兼容考虑的事情太多了,而我的只需要把我需要的范围内的数据转换出来就可以了。适合的就是最好的,不一定一味追求标准库等等。

使用特权

评论回复
49
caijinbao2017| | 2017-9-27 19:47 | 只看该作者
学习了 谢谢

使用特权

评论回复
50
linqing171| | 2017-9-27 21:36 | 只看该作者

首先要确保编译成功了,在keil左边的工程文件列表上,双击就打开了。不要双击c文件,要双击第二级,也就是工程选项那级。

使用特权

评论回复
51
Cjy_JDxy|  楼主 | 2017-9-27 22:15 | 只看该作者
linqing171 发表于 2017-9-27 21:36
首先要确保编译成功了,在keil左边的工程文件列表上,双击就打开了。不要双击c文件,要双击第二级,也就 ...

CT001.rar (17.78 KB)
谢谢!太多了,我把.map文件发上来了。

使用特权

评论回复
52
linqing171| | 2017-9-28 23:15 | 只看该作者
Cjy_JDxy 发表于 2017-9-27 22:15
谢谢!太多了,我把.map文件发上来了。

你把project -> Options -> Use MicroLib 的勾去了,用正常的库看看。

使用特权

评论回复
53
Cjy_JDxy|  楼主 | 2017-9-29 10:49 | 只看该作者
linqing171 发表于 2017-9-28 23:15
你把project -> Options -> Use MicroLib 的勾去了,用正常的库看看。

还是不行。

使用特权

评论回复
54
linqing171| | 2017-9-29 13:38 | 只看该作者

新建工程,里面只留最少的代码,复现此问题,把工程打包上传上来。国庆放假了,正好有时间给你看看。

使用特权

评论回复
55
Cjy_JDxy|  楼主 | 2017-9-30 08:59 | 只看该作者
linqing171 发表于 2017-9-29 13:38
新建工程,里面只留最少的代码,复现此问题,把工程打包上传上来。国庆放假了,正好有时间给你看看。 ...

我建了个最简单的工程。发现sprintf好用。崩溃
可是那个复杂的UCOS工程还是不行

使用特权

评论回复
56
linqing171| | 2017-10-6 20:03 | 只看该作者
Cjy_JDxy 发表于 2017-9-30 08:59
我建了个最简单的工程。发现sprintf好用。崩溃
可是那个复杂的UCOS工程还是不行 ...

不要新建,复制一份你的项目,在你项目里写个简单的例子,然后删你项目里面的代码。

使用特权

评论回复
57
Cjy_JDxy|  楼主 | 2017-10-7 09:58 | 只看该作者
RTU20170907_138@201709260500.rar (763.73 KB)

项目用了UCOSII,sprintf用在main.c里,App_TaskGPRS|任务
static        void                App_TaskGPRS        (void         *p_arg)
{                                                                       
                p_arg = p_arg;
                Water_Flow_Now=123.45;
               
               
                sprintf(ASCII_Buffer,"%s",Water_Flow_Now);
                while(1)
                {               
                               
                                // ÇåÈí¼þ¼ÆÊýÆ÷ ////////////////////                                                       
                                OSTmr_Count_Start(&s_SWG.gprsCounter);
                                OSTimeDly(50);       
                }
}

使用特权

评论回复
58
Xy201207| | 2017-10-7 10:45 | 只看该作者
kingkits 发表于 2017-9-25 11:31
union
{
    float f_dat;

这个NB了

使用特权

评论回复
59
plsbackup| | 2017-10-7 17:05 | 只看该作者
sprintf这个可以用的。

使用特权

评论回复
60
kmzuaz| | 2017-10-7 17:05 | 只看该作者
对应位数有要求吗?

使用特权

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

本版积分规则