打印

很疑惑。。。求帮助

[复制链接]
1617|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kusheng176|  楼主 | 2010-9-23 21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我设置了8个8位buffer:unsigned char buffer[8];
然后我进行数据采集。当我采取的数据为全0(也就是我没有进行任何操作,下位机得到的数据)时候,数据却是如下:

第一次扫描得到数据:
Keil中仿真数据:    buffer[0]~buffer[7]:00 00 00 00 00 00 00 10
而串口收到的数据:buffer[0]~buffer[7]:00 00 00 00 00 00 00 20
理想数据:           buffer[0]~buffer[7]:00 00 00 00 00 00 00 00

第二次扫描得到数据:
Keil中仿真数据:    buffer[0]~buffer[7]:01 00 00 00 01 00 00 10
而串口收到的数据:buffer[0]~buffer[7]:03 00 00 00 03 00 00 20
理想数据:           buffer[0]~buffer[7]:00 00 00 00 00 00 00 00

后面几次扫描得到的数据都跟第二次一样,我想知道下这是为什么?

程序如下:
void Turn_pa(unsigned char mask)
{
    unsigned char j;  
    for (j=0; j<8;j++)
    {
        if(num & 1)
        {
            buffer[j]|=1<<mask;
        }
        num >>= 1;
    }
}
void Turn_pb(unsigned char mask)
{
    unsigned char j;  
    for (j=0; j<8;j++)
    {
        if(num & 1)
        {
            buffer[j]|=1<<mask;
        }
        num >>= 1;
    }
}

void caiyang()
{
    uchar j;
Delay380us();
for(j=0;j<2;j++)      
{
     PC=0xfe;
  num=PA;
     Turn_pa(j);
  PC=0xfd;
}
for(j=1;j<2;j++)
{
     Turn_pa(j);
  num=PA;
  PC=0xfb;   
    }
for(j=2;j<3;j++)
{
     Turn_pa(j);
  num=PA;
  PC=0xf7;   
    }
for(j=3;j<4;j++)
{
     Turn_pa(j);
  num=PA;
  PC=0xef;   
    }
for(j=4;j<5;j++)
{
  Turn_pb(j);
  num=PB;
  PC=0xdf;
}
for(j=5;j<6;j++)
{
  Turn_pb(j);
  num=PB;
  PC=0xcf;
}
for(j=6;j<7;j++)
{
  Turn_pb(j);
  num=PB;
  PC=0x7f;
}
for(j=7;j<8;j++)
{
  Turn_pb(j);
  num=PB;
  PC=0xff;
}
for(i=0;i<8;i++)
{
    SBUF=buffer[i];
    while(TI==0);
    TI=0;
}
}

相关帖子

沙发
kusheng176|  楼主 | 2010-9-24 17:16 | 只看该作者
真心求帮助。。。

使用特权

评论回复
板凳
newjacket| | 2010-9-30 09:39 | 只看该作者
本帖最后由 newjacket 于 2010-9-30 09:48 编辑

这个程序让我看得无语凝噎……

使用特权

评论回复
地板
john_light| | 2010-9-30 10:11 | 只看该作者
顶3楼,笑熬浆糊。

楼主,源程序中,把你想要实现的操作注释一下,然后发出来。

使用特权

评论回复
5
zdhlixiang2006| | 2010-10-4 17:23 | 只看该作者
程序最忌讳没有注释,这是个习惯问题,于自己,可以让你维护起来更容易,于别人,这是个团队内的基本要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

64

帖子

1

粉丝