极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20687|回复: 6

Arduino中float类型转unsigned char*的问题

[复制链接]
发表于 2012-8-8 09:11:12 | 显示全部楼层 |阅读模式
正在学习Arduino,遇到一个问题,我打算在LCD12864中显示DS18B20采集到得温度,但是采集到的温度是float类型数值,而LCD显示时需要使用unsigned char*数组,应该如何转换呢?

看到语言参考里只有Char()函数
回复

使用道具 举报

发表于 2012-8-8 10:06:02 | 显示全部楼层
1、18B20得到的数据可以是整数、小数分开处理的,无需转换成float
2、真的要用到浮点数,可以用这个函数:dtostrf(floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf);
具体用法google一下
回复 支持 反对

使用道具 举报

发表于 2012-8-8 17:04:22 | 显示全部楼层
飞翔的红猪 发表于 2012-8-8 10:06
1、18B20得到的数据可以是整数、小数分开处理的,无需转换成float
2、真的要用到浮点数,可以用这个函数: ...

有个问题,dtostrf的第4个参数charBuf的数据类型是char*,LCD12864的DisplayString函数的参数是unsigned char*,如果直接互相使用参数会报错。这里可以还涉及类型转换。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-9 22:42:05 | 显示全部楼层

本帖最后由 greenfort 于 2012-8-9 22:53 编辑
arduino-tinker 发表于 2012-8-8 17:04
有个问题,dtostrf的第4个参数charBuf的数据类型是char*,LCD12864的DisplayString函数的参数是unsigned  ...


是的,我是用这个函数以后,在编译时报错,就是这个Char*问题,那么Char*到unsigned Char*如何转换呢?使用(unsigned char*)转换报错,说无效转换啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 22:41:52 | 显示全部楼层
解决了,转换的时候用(unsigned char *)str 解决,str位char型数组
回复 支持 反对

使用道具 举报

发表于 2012-10-9 00:33:25 | 显示全部楼层
能提供个完整的代码看看吗,谢谢!
回复 支持 反对

使用道具 举报

发表于 2012-10-9 02:43:35 | 显示全部楼层
dtostrf是gcc库函数,非标准函数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 23:46 , Processed in 0.046694 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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