📄 uart0.c
字号:
readnum+=6;
switch (rbuf[readnum])
{
case '1': //115200
readnum+=7;
succeedre();
CKCON|=0x08;
TH1=0xcc;
break;
case '2': //1200
readnum+=5;
succeedre();
CKCON|=0x02;
CKCON&=~0x09;
TH1=0x98;
break;
case '3': //230400
readnum+=7;
succeedre();
CKCON|=0x08;
TH1=0xe6;
break;
case '4': //14400
readnum++;
if (rbuf[readnum]==4)
{
readnum+=5;
succeedre();
CKCON|=0x01;
CKCON&=~0x0a;
TH1=0x98;
}
else //2400
{
readnum+=4;
succeedre();
CKCON&=~0x0b;
TH1=0x30;
}
break;
case '6': //9600
readnum+=5;
succeedre();
CKCON|=0x01;
CKCON&=~0x0a;
TH1=0x64;
break;
case '7': //57600
readnum+=6;
succeedre();
CKCON|=0x08;
TH1=0x98;
break;
case '8': //28800
readnum+=6;
succeedre();
CKCON|=0x08;
TH1=0x30;
break;
}
}
/******************************************************************************
*读取历史数据子程序*
*******************************************************************************/
void load()
{
// readnum=readnum99(4);
readnum+=5;
switch (rbuf[readnum])
{
case 'O':
length=4140;
datatimepro();
readnum+=2;
datatime[3]=rbuf[readnum]-0x30;
datatime[3]*=10;
readnum+=1;
datatime[3]+=rbuf[readnum]-0x30;
datatime[4]=0;
readnum+=3;
succeedre();
get_history_dataa();
break;
case 'U':
length=69;
datatimepro();
readnum+=2;
datatime[3]=rbuf[readnum]-0x30;
datatime[3]*=10;
readnum+=1;
datatime[3]+=rbuf[readnum]-0x30;
readnum+=2;
datatime[4]=rbuf[readnum]-0x30;
datatime[4]*=10;
readnum+=1;
datatime[4]+=rbuf[readnum]-0x30;
readnum+=2;
minutelength=rbuf[readnum]-0x30;
minutelength*=10;
readnum+=1;
minutelength+=rbuf[readnum]-0x30;
readnum+=3;
succeedre();
get_history_dataa();
break;
case 'A':
length=99360;
datatimepro();
datatime[3]=0;
datatime[4]=0;
readnum+=3;
succeedre();
get_history_dataa();
break;
default:
readnum=rnum;
lostre();
break;
}
}
/******************************************************************************
*读取历史数据时间子程序*
*******************************************************************************/
void datatimepro()
{
// readnum=readnum99(8);
readnum+=9;
datatime[0]=rbuf[readnum]-0x30;
datatime[0]*=10;
// readnum=readnum99(1);
readnum++;
datatime[0]+=rbuf[readnum]-0x30;
// readnum=readnum99(2);
readnum+=2;
datatime[1]=rbuf[readnum]-0x30;
datatime[1]*=10;
// readnum=readnum99(1);
readnum++;
datatime[1]+=rbuf[readnum]-0x30;
// readnum=readnum99(2);
readnum+=2;
datatime[2]=rbuf[readnum]-0x30;
datatime[2]*=10;
// readnum=readnum99(1);
readnum++;
datatime[2]+=rbuf[readnum]-0x30;
}
/******************************************************************************
*读取一小时内的分钟历史数据子程序*
*******************************************************************************/
void onehor()
{
int j;
/* datatimepro();
readnum=readnum99(1);
datatime[3]=rbuf[readnum]-0x30;
datatime[3]*=10;
readnum=readnum99(i);
datatime[3]+=rbuf[readnum]-0x30;
datatime[4]=0;
readnum=readnum99(3);
*/
//调用取数据子函数
uporload=1;
for(j=0;j<7;j++)
{
tbuf[writenum]=id[j];
writenum++;
}
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]=0x30; //0
writenum++;
tbuf[writenum]='T'; //U
writenum++;
tbuf[writenum]='A'; //P
writenum++;
tbuf[writenum]='L'; //D
writenum++;
tbuf[writenum]='O'; //A
writenum++;
tbuf[writenum]='A'; //T
writenum++;
tbuf[writenum]='D'; //A
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]='O'; //O
writenum++;
tbuf[writenum]='N'; //N
writenum++;
tbuf[writenum]='E'; //E
writenum++;
tbuf[writenum]='H'; //H
writenum++;
tbuf[writenum]='O'; //O
writenum++;
tbuf[writenum]='R'; //R
writenum++;
tbuf[writenum]=0x20; //
writenum++;
tbuf[writenum]='2'; //
writenum++;
tbuf[writenum]='0'; //
writenum++;
data_tra(); //调用数据转换子程序
tbuf[writenum]=0x0D; //回车
writenum++;
tbuf[writenum]=0x0A; //换行
writenum++;
writenum=0;
send(); //数据发送
}
/******************************************************************************
*读取用户指定时间点历史数据子程序*
*******************************************************************************/
void userld()
{
unsigned char j;
/* datatimepro();
readnum=readnum99(1);
datatime[3]=rbuf[readnum]-0x30;
datatime[3]*=10;
readnum=readnum99(1);
datatime[3]+=rbuf[readnum]-0x30;
readnum=readnum99(2);
datatime[4]=rbuf[readnum]-0x30;
datatime[4]*=10;
readnum=readnum99(1);
datatime[4]+=rbuf[readnum]-0x30;
readnum=readnum99(1);
k=rbuf[readnum]-0x30;
k*=10;
readnum=readnum99(1);
k+=rbuf[readnum]-0x30;
length*=k;
readnum=readnum99(3);
*/
//调用取数据子函数
uporload=1;
for(j=0;j<7;j++)
{
tbuf[writenum]=id[j];
writenum++;
}
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]=0x30; //0
writenum++;
tbuf[writenum]='T'; //U
writenum++;
tbuf[writenum]='A'; //P
writenum++;
tbuf[writenum]='L'; //D
writenum++;
tbuf[writenum]='O'; //A
writenum++;
tbuf[writenum]='A'; //T
writenum++;
tbuf[writenum]='D'; //A
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]='U'; //U
writenum++;
tbuf[writenum]='S'; //S
writenum++;
tbuf[writenum]='E'; //E
writenum++;
tbuf[writenum]='R'; //R
writenum++;
tbuf[writenum]='L'; //L
writenum++;
tbuf[writenum]='D'; //D
writenum++;
tbuf[writenum]=0x20; //
writenum++;
tbuf[writenum]='2'; //
writenum++;
tbuf[writenum]='0'; //
writenum++;
data_tra(); //调用数据转换子程序
tbuf[writenum]=0x0D; //回车
writenum++;
tbuf[writenum]=0x0A; //换行
writenum++;
writenum=0;
send(); //数据发送
}
/******************************************************************************
*读取一天内历史数据子程序*
*******************************************************************************/
void allday()
{
int j;
/* datatimepro();
datatime[3]=0;
datatime[4]=0;
readnum=readnum99(3);
*/
uporload=1;
for(j=0;j<7;j++)
{
tbuf[writenum]=id[j];
writenum++;
}
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]=0x30; //0
writenum++;
tbuf[writenum]='T'; //U
writenum++;
tbuf[writenum]='A'; //P
writenum++;
tbuf[writenum]='L'; //D
writenum++;
tbuf[writenum]='O'; //A
writenum++;
tbuf[writenum]='A'; //T
writenum++;
tbuf[writenum]='D'; //A
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]='A'; //A
writenum++;
tbuf[writenum]='L'; //L
writenum++;
tbuf[writenum]='L'; //L
writenum++;
tbuf[writenum]='D'; //D
writenum++;
tbuf[writenum]='A'; //A
writenum++;
tbuf[writenum]='Y'; //Y
writenum++;
tbuf[writenum]=0x20; //
writenum++;
tbuf[writenum]='2'; //
writenum++;
tbuf[writenum]='0'; //
writenum++;
data_tra(); //调用数据转换子程序
tbuf[writenum]=0x0D; //回车
writenum++;
tbuf[writenum]=0x0A; //换行
writenum++;
writenum=0;
send(); //数据发送
}
/******************************************************************************
*历史数搜索失败子程序*
*******************************************************************************/
void nodata()
{
for(;readnum2<readnum-2;readnum2++)
{
tbuf[writenum]=rbuf[readnum2];
writenum++;
}
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]='E'; //E
writenum++;
tbuf[writenum]='R'; //R
writenum++;
tbuf[writenum]='0'; //R
writenum++;
tbuf[writenum]='0'; //O
writenum++;
tbuf[writenum]='4'; //R
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
ordertimepro();
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]=0x0D; //回车
writenum++;
tbuf[writenum]=0x0A; //换行
writenum++;
writenum=0;
send();
}
/******************************************************************************
*参数设置子程序*
*******************************************************************************/
void para()
{
int i;
readnum+=5;
switch (rbuf[readnum])
{
case 'T':
readnum+=4;
switch (rbuf[readnum])
{
case '1':
readnum+=2;
coetra();
tempcoe=COEFFMID;
EEPROM_ByteWrite(0x10,0x00,coefficient);
readnum+=2;
succeedre();
break;
case '2':
readnum+=2;
coetra();
tempcoe2=COEFFMID;
EEPROM_ByteWrite(0x50,0x00,coefficient);
readnum+=2;
succeedre();
break;
default:
readnum=rnum;
lostre();
break;
}
break;
case 'H':
readnum+=5;
coetra();
humicoe=COEFFMID;
EEPROM_ByteWrite(0x20,0x00,coefficient);
readnum+=2;
succeedre();
break;
case 'P':
readnum+=5;
coetra();
prescoe=COEFFMID;
EEPROM_ByteWrite(0x30,0x00,coefficient);
readnum+=2;
succeedre();
break;
case 'W':
readnum+=5;
for(i=0;i<3;i++)
{
coefficient[i]=rbuf[readnum];
readnum++;
}
windcoe=(0x2c-coefficient[0])*((coefficient[1]-0x30)*10+(coefficient[2]-0x30));
EEPROM_ByteWrite(0x40,0x00,coefficient);
readnum+=2;
succeedre();
break;
case 0x0a:
for(i=0;i<7;i++)
{
tbuf[writenum]=id[i];
writenum++;
}
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]=0x30; //0
writenum++;
tbuf[writenum]='T'; //U
writenum++;
tbuf[writenum]='A'; //P
writenum++;
tbuf[writenum]='P'; //D
writenum++;
tbuf[writenum]='A'; //A
writenum++;
tbuf[writenum]='R'; //T
writenum++;
tbuf[writenum]='A'; //A
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
tbuf[writenum]='T'; //T
writenum++;
tbuf[writenum]='E'; //E
writenum++;
tbuf[writenum]='M'; //M
writenum++;
tbuf[writenum]='P'; //P
writenum++;
tbuf[writenum]=0x20; //0
writenum++;
EEPROM_ByteRead(0x10,0x00,coefficient);
for(i=0;i<7;i++)
{
tbuf[writenum]=coefficient[i];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -