其中一个串口接收函数,我初始化时flag1=0;安装协议给数据,可是灯不亮,,但是我把 if(flag1==1) if(flag1==2) if(flag1==3) 屏蔽掉后,给数据,灯就亮了,求高手指点哪里错了
/*从上位机接受到的数据*/
void GetData232(void )
{
int i,jy;
if(r==1&&Com232[0]==0x43&&Com232[1]==0x54&&Com232[2]==0x07)
{
if((jiaoyan())==1)
{
if(Com232[3]==0x85)
{
RB1=1;RB2=0;RG4=0; //停止状态绿灯灯亮
}
if (Com232[3]==0x02)
{
RB1=0;RB2=1;RG4=1; //上升状态绿灯灯亮
}
if (Com232[3]==0x84)
{
RB1=0;RB2=0;RG4=1; // 下降状态绿灯亮
}
if (Com232[3]==0xA3)
{
RB1=0;RB2=1;RG4=0; //上升限位红灯亮
}
if (Com232[3]==0xC5 )
{
RB1=0;RB2=0;RG4=0; //下降限位红灯亮
}
if(flag1==1) //行车
{
flag1=0;
if((H>H_M)&&(Com232[3]==0x92))
{RB1=0;RB2=0;RG4=1;} // 下降状态绿灯亮
if((H<H_M)&&(Com232[3]==0x92))
{ RB1=0;RB2=1;RG4=1;} //上升状态绿灯灯亮
if (Com232[3]==0x83)
{ RB1=1;RB2=1;RG4=1;} //行车灯亮
}
if(flag1==2) //驻车
{
flag1=0;
RB1=0; //上升状态绿灯灯亮
RB2=1;
RG4=1;
if(Com232[3]==0xA3)
{RB1=1;RB2=0;RG4=1;} //驻车工作灯亮
}
if(flag1==3) //撤收
{
flag1=0;
RB1=0; // 下降状态绿灯亮
RB2=0;
RG4=1;
if(Com232[3]==0xC5)
{RB1=1;RB2=1;RG4=0;}
}
H=(Com232[4]<<8)|Com232[5];
}
}
}
|