hui92984 发表于 2012-10-11 21:35:02

请教一个关于变量赋值的问题!



请教各位大神,我是用了论坛上的12864程序,遇到如下问题:

如果show1[]=“test...”那么在12864上就可以正常显示,
如果show1[]={ hui } 那么12864上显示的就是乱码,
hui里面存储的数据是“23”整形数值;

我发现只要给show1 的数值是以变量形式给予的 都会出现问题,
要是直接给show1 赋值就没有问题,哪位大神帮忙看看啊!

test01 发表于 2012-10-11 23:31:45

去看C语言基础教材,字符与字符串

邓维安 发表于 2012-10-12 08:32:39


loop()
{
DHT1.read(DHT1PIN);
float hui=DHT11.tempareture;//这里可用 char hui=DHT11.tempareture;
LCDA.CLEAR();
delay(100);
LCDA.DisplayString(2,1,hui,AR_AR_SIZE(hui));;
LCDA.CLEAR();
}
//最后默念三句,深藏功与名:不要崇拜哥,哥只是一个谜

zhangdeyue1 发表于 2012-10-12 09:56:57

关键还是字符和字符串的问题!我之前也遇到过

hui92984 发表于 2012-10-12 11:16:18



不行啊亲
貌似hui必须要是数组才可以,LCDA.DisplayString(3,1,hui,AR_SIZE(hui))

hui92984 发表于 2012-10-12 11:16:50

邓维安 发表于 2012-10-12 08:32 static/image/common/back.gif
loop()
{
DHT1.read(DHT1PIN);




不行啊亲
貌似hui必须要是数组才可以,LCDA.DisplayString(3,1,hui,AR_SIZE(hui))

histamine 发表于 2012-10-12 12:57:19

:lol ascii码里面23是个控制符

LZ你应该把数值转成字符串再输出

hui92984 发表于 2012-10-12 14:06:29


已经转换了啊,可还是不行,谁能帮忙看看阿!

histamine 发表于 2012-10-12 14:23:21

没看见哪里转换了

LZ你应该用sprintf之类的函数

test01 发表于 2012-10-12 16:06:52

楼主,你对数据类型完全不清楚啊
实型数,字符,字符数组混着赋值,怎么可能通过呢

邓维安 发表于 2012-10-13 10:10:24

hui92984 发表于 2012-10-12 11:16 static/image/common/back.gif
不行啊亲
貌似hui必须要是数组才可以,LCDA.DisplayString(3,1,hui,AR_SIZE(hui))

http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1649

邓维安 发表于 2012-10-13 10:13:06

看一下上面那个文章中这几句很重要,
char str; //定义温度值存储数组,4位,其中3位为数字,1位为小数点

double temp =0; //定义中间变量,用于将获取的float型温度值转变为unsigned char数组
dtostrf(temp,4,2,str);//将获取的数值转换为字符型数组
LCDA.DisplayString(3,(i-6)*3,(unsigned char *)str,sizeof(str));

yzh19930401 发表于 2012-10-13 17:00:26

整形的变量怎么可以赋值给支付行的数组呢?楼主去看看C语言教材吧!
页: [1]
查看完整版本: 请教一个关于变量赋值的问题!