回 帖 发 新 帖 刷新版面

主题:[讨论]求教!为什么无法显示!!

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个回复)

沙发

没人理我:(  :(  :(  :(  :(  :(  :(  :(  :(

板凳

没看懂 - -!

3 楼

自己顶起

可能问题就出在指针赋值上面了,

如何能把数组y[6]赋值给 x  .
通过 putstrxy 显示在led上

void putstrxy(unsigned char cx,unsigned char cy,unsigned char code *s);
(led 带字符、汉字字库)
这个是 putstrxy 函数原形,

4 楼


[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 楼

x=(char*)y[6];                    

改成
x=y;

6 楼

x=&y[6];                    
    putstrxy(0,1,x);  //这样试试看!  

7 楼

你y没初始化……为什么要来给x赋值呢
y[6]是个char型,强制转换成char*的时候长度不够,*类型相当于unsigned long,比char长很多的

8 楼

x=y;
x=&y;
都试过不行!

谁用过伟福仿真机,有的时候程序改了 编译后还是原来的执行结果,为什么!

9 楼

sprintf(y,"%3.1f",a);


这个不是给y赋值了呀!

10 楼

搞得有些头疼,:(

我来回复

您尚未登录,请登录后再回复。点此登录或注册