📄 rs_485.c
字号:
#include "all.h"
/**********************************************************************
**函数原型: void Attand_485(void)
**入口参数: Xin_485_b=1
**出口参数: 无
**返 回 值: 无
**说 明: 处理上位机485命令之子程序。
************************************************************************/
void Attand_485(void) //注:中断里面使用寄存器组0,??是否与主程序有冲突
{ unsigned int i; // 不用寄存器组0的话,RW24XX不能正常读写时钟
uchar j;
uchar fun;
//uchar Tem_lei;
uchar sum;
// uchar *Poit;
fun=0;
if(Xin_485_b==1)
{
//Wait(250);
Xin_485_b=0;
i=GPRS_RX_Buff[1];
i=i+2;
sum=0;
//goto dddd;
for(j=0;j<i;j++)
{
sum=sum+GPRS_RX_Buff[j]; // 求代数和
}
if(sum==GPRS_RX_Buff[i]&&GPRS_RX_Buff[i+1]==0xab) //校验和等且最后的字节为0XAB
{
switch (GPRS_RX_Buff[0])
{
case 0: //接收到error ***********************************************************************
break;
case 1: //接收到OK ***********************************************************************
if(GPRS_RX_Buff[2]==3) {
// 发成功音
}
else if(GPRS_RX_Buff[2]==4) {
// 发成功音
}
else ;
break;
case 2: //接收到对码**************************************************************
break;
case 3: //接收到 说 明: 普通控制子程序************************************************************
break;
case 4: //接收重要控制子程序************************************************************
break;
case 16: //***********************************
Ying_da_ok(16);
break;
case 17: //********************************
Ying_da_ok(17);
break;
case 18: //测试用*****************************
break;
default: ;
break;
} // switch (GPRS_RX_Buff[0]) de
} //if de
}
}
//=====================================================================================
//------以上是对上位机的485命令进行处理------------------------------
//=====================================================================================
/**********************************************************************
**函数原型: void ShangZhuang_message(uchar fun, uchar *Poit, uchar Lengh)
**入口参数: 功能码,内容,数据长度
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -