greenfort 发表于 2012-8-8 09:11:12

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

正在学习Arduino,遇到一个问题,我打算在LCD12864中显示DS18B20采集到得温度,但是采集到的温度是float类型数值,而LCD显示时需要使用unsigned char*数组,应该如何转换呢?

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

飞翔的红猪 发表于 2012-8-8 10:06:02

1、18B20得到的数据可以是整数、小数分开处理的,无需转换成float
2、真的要用到浮点数,可以用这个函数:dtostrf(floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf);
具体用法google一下

arduino-tinker 发表于 2012-8-8 17:04:22

飞翔的红猪 发表于 2012-8-8 10:06 static/image/common/back.gif
1、18B20得到的数据可以是整数、小数分开处理的,无需转换成float
2、真的要用到浮点数,可以用这个函数: ...

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

greenfort 发表于 2012-8-9 22:42:05

本帖最后由 greenfort 于 2012-8-9 22:53 编辑

arduino-tinker 发表于 2012-8-8 17:04 static/image/common/back.gif
有个问题,dtostrf的第4个参数charBuf的数据类型是char*,LCD12864的DisplayString函数的参数是unsigned...

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

greenfort 发表于 2012-8-12 22:41:52

解决了,转换的时候用(unsigned char *)str 解决,str位char型数组

普创通享 发表于 2012-10-9 00:33:25

能提供个完整的代码看看吗,谢谢!

test01 发表于 2012-10-9 02:43:35

dtostrf是gcc库函数,非标准函数
页: [1]
查看完整版本: Arduino中float类型转unsigned char*的问题