主题:[讨论]求教!为什么无法显示!!
shegh [专家分:0] 发布于 2010-03-02 11:26:00
float a;
unsigned char *x="000.0",y[6];
lcdreset(); //液晶显示控制器初始化
charlcdfill(' '); //显示清屏
putstrxy(2,0,"计时:123.4S"); //在(2,0)位置开始显示字符串
exdelay(); //延时约300mS
exdelay();
a=321.45;
sprintf(y,"%3.1f",a);
putstrxy(0,1,x); //正常显示 ‘000.0’
x=(char*)y[6];
putstrxy(0,1,x); //无法显示正常结果
回复列表 (共22个回复)
沙发
shegh [专家分:0] 发布于 2010-03-02 11:31:00
没人理我:( :( :( :( :( :( :( :( :(
板凳
漂流瓶之梦 [专家分:10] 发布于 2010-03-02 13:35:00
没看懂 - -!
3 楼
shegh [专家分:0] 发布于 2010-03-02 15:28:00
自己顶起
、
可能问题就出在指针赋值上面了,
如何能把数组y[6]赋值给 x .
通过 putstrxy 显示在led上
void putstrxy(unsigned char cx,unsigned char cy,unsigned char code *s);
(led 带字符、汉字字库)
这个是 putstrxy 函数原形,
4 楼
shegh [专家分:0] 发布于 2010-03-02 16:22:00
[em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1][em1]v
5 楼
七彩云南 [专家分:80] 发布于 2010-03-02 16:37:00
x=(char*)y[6];
改成
x=y;
6 楼
miaoyong [专家分:760] 发布于 2010-03-02 18:35:00
x=&y[6];
putstrxy(0,1,x); //这样试试看!
7 楼
雪光风剑 [专家分:27190] 发布于 2010-03-02 19:40:00
你y没初始化……为什么要来给x赋值呢
y[6]是个char型,强制转换成char*的时候长度不够,*类型相当于unsigned long,比char长很多的
8 楼
shegh [专家分:0] 发布于 2010-03-02 21:09:00
x=y;
x=&y;
都试过不行!
谁用过伟福仿真机,有的时候程序改了 编译后还是原来的执行结果,为什么!
9 楼
shegh [专家分:0] 发布于 2010-03-02 21:10:00
sprintf(y,"%3.1f",a);
这个不是给y赋值了呀!
10 楼
shegh [专家分:0] 发布于 2010-03-02 21:11:00
搞得有些头疼,:(
我来回复