老大让写个网络切换的程序,就是控制几个继电器同时动作。写了1天了,已经可以根据接收的命令进行网络切换了,但是,由于在接收上位机命令后,要返回本身的状态,这个地方出错了,怎么都读不到自己的状态!不知道是怎么回事!希望有人指点下!
功能是这样的,上位机发送的指令是8个字节,格式是:68,16,16,68,05,XX,AA,16
其中XX有3种,为01,10,11;其中01是内部网络,10是外部网络,11是无线网络。
我接收了命令后进行了切换,成功了。然后读取自己的IO口状态,用了3个if来判断是那种状态,然后发回上位机。但是,发送的状态全部都是else里面的。也就是说,读取全部失败。
下面,把发送数据的函数发上来,希望有人能指点下。
如下程序,我是想通过读取RA1,RA2,RA3的值,然后根据他们的状态来修改一个数组里的固定的2个值,接着把他们发送倒上位机!但是,全部失败了,希望有人能说说
void send_data()
{
uchar i,temp1,temp2,temp3,data[8]={0x68,0x16,0x16,0x68,0x00,0x00,0x00,0x16};
temp1=RA1;
temp2=RA2;
temp3=RA3;
if(temp1==0&&temp2==1&&temp3==1)
{
data[5]=0x10;
data[6]=0x10;
}
if(temp1==1&&temp2==0&&temp3==1)
{
data[5]=0x01;
data[6]=0x01;
}
else
{
data[5]=0xaa;
data[6]=0xaa;
}
for(i=0;i<8;i++)
{
while(!TXIF);
TXIF=0;
TXREG=data;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>