📄 junger.c
字号:
void junger(void)
{
if((t>=time_ok)&&(rxbuf[0]==ADDRESS)) // ADDRESS为该从机的地址
{
flag.receive_ok=TRUE;
flag.timecount_ok=FAULT;
t=0;
flag.ds=0;
URCTL1 |= URXWIE; //到达末尾,改变接收为地址方式
}
else
{
flag.receive_ok=FAULT;
t=0;
}
if(flag.receive_ok==TRUE)
{
_NOP();
flag.receive_ok=FAULT;
if(rxbuf[1]==download_parameter)
{
T16=crc16(rxbuf,rxbuf[5]*2+6);//计算CRC值
high8=T16 >> 8;
low8=T16 & 0xff;
}
else
{
T16=crc16(rxbuf,6);//计算CRC值
high8=T16 >> 8;
low8=T16 & 0xff;
}
if((rxbuf[1]==download_parameter) && (rxbuf[6+rxbuf[5]*2]==high8) && (rxbuf[7+rxbuf[5]*2]==low8))
{
downloadparameter() ;
}
if((rxbuf[1]!=download_parameter )&& (rxbuf[6]==high8) && (rxbuf[7]==low8 ))
{
//unsigned short b=rxbuf[5];
//unsigned short c=rxbuf[3];
//unsigned long a =b*2;
switch(rxbuf[1])
{
case read_relay: //读继电器状态
readrelay() ;
break;
case read_switch: //读输入开关量状态
readswitch() ;
break;
case read_register: //读取保持寄存器
readregister() ;
break;
case release_replase://继电器释放或电能表复位
readreplase() ;
break;
case download_parameter://参数下载
downloadparameter() ;
break;
case read_dztd://读取定值通道状态
readrelay() ;
break;
//case read_thing://读取事件记录
//readrelay() ;
//break;
default:
answernum=0x01;
exceptionalanswer();
answernum=0x00;
break;
}
}
}
i=0;
for(i=0;i<140;i++)
{
rxbuf[i]=0;
txbuf[i]=0;
}
i=0;
for(i=0;i<140;i++)
{
rxbuf[i]=0;
txbuf[i]=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -