|
|
|
@ -7,6 +7,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
//u8 cnt_flag=0,sub_flag=0,pub_flag=0;
|
|
|
|
//u8 cnt_flag=0,sub_flag=0,pub_flag=0;
|
|
|
|
//u16 time=0;//记录ping服务器的时间
|
|
|
|
//u16 time=0;//记录ping服务器的时间
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
u8 store_stage=1;//写入flash的阶段号,断电重启后读取可以紧接着上次的阶段运行
|
|
|
|
extern PID pid;
|
|
|
|
extern PID pid;
|
|
|
|
extern float kd;
|
|
|
|
extern float kd;
|
|
|
|
extern float ki;
|
|
|
|
extern float ki;
|
|
|
|
@ -139,19 +141,19 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
now_stage=timelong_Compare();//
|
|
|
|
now_stage=timelong_Compare();//
|
|
|
|
//printf("%d %d\r\n",chour,cminute);
|
|
|
|
printf("%d %d\r\n",chour,cminute);
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
// printf("current stage: %d\r\n",now_stage);
|
|
|
|
printf("current stage: %d\r\n",now_stage);
|
|
|
|
RS485_1_Send_Data_1(rs485buf,8);//(RS485_RX_CNT=0已被注释)
|
|
|
|
RS485_1_Send_Data_1(rs485buf,8);//(RS485_RX_CNT=0已被注释)
|
|
|
|
//printf("send finish\r\n");
|
|
|
|
printf("send finish\r\n");
|
|
|
|
delay_xms(1000);
|
|
|
|
delay_xms(1000);
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
RX_BUF_Printf(128);
|
|
|
|
RS485_1_Send_Data_3();
|
|
|
|
RS485_1_Send_Data_3();
|
|
|
|
delay_xms(1000);
|
|
|
|
delay_xms(1000);
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
RX_BUF_Printf(128);
|
|
|
|
while(!(RS485_RX_BUF[0]==0 && RS485_RX_BUF[1]==0 && RS485_RX_BUF[2]==0 && RS485_RX_BUF[3]==0 && RS485_RX_BUF[4]==0))
|
|
|
|
while(!(RS485_RX_BUF[0]==0 && RS485_RX_BUF[1]==0 && RS485_RX_BUF[2]==0 && RS485_RX_BUF[3]==0 && RS485_RX_BUF[4]==0))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//printf("enter while\r\n");
|
|
|
|
printf("enter while\r\n");
|
|
|
|
|
|
|
|
|
|
|
|
if(RS485_RX_BUF[0]==0x01 && RS485_RX_BUF[1]==0x03) // 判断是否校验成功
|
|
|
|
if(RS485_RX_BUF[0]==0x01 && RS485_RX_BUF[1]==0x03) // 判断是否校验成功
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -165,7 +167,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
C= RS485_RX_BUF[19];
|
|
|
|
C= RS485_RX_BUF[19];
|
|
|
|
C = C<<8|RS485_RX_BUF[20];
|
|
|
|
C = C<<8|RS485_RX_BUF[20];
|
|
|
|
|
|
|
|
|
|
|
|
//printf("now_tem=%d.%d¡æ,now_hum=%d.%d%% ,co2=%d\r\n",T/10,T%10,H/10,H%10,C);
|
|
|
|
printf("now_tem=%d.%d℃,now_hum=%d.%d%% ,co2=%d\r\n",T/10,T%10,H/10,H%10,C);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*GPIO1->报警铃 GPIO2->压缩机 GPIO3->四通阀 GPIO4—>新风风扇 GPIO5->加湿器 */
|
|
|
|
/*GPIO1->报警铃 GPIO2->压缩机 GPIO3->四通阀 GPIO4—>新风风扇 GPIO5->加湿器 */
|
|
|
|
@ -232,13 +234,13 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇
|
|
|
|
humidity_flag=0;
|
|
|
|
humidity_flag=0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//printf("!!!");
|
|
|
|
printf("!!!");
|
|
|
|
RS485_1_Send_Data_2(); //上传参数
|
|
|
|
RS485_1_Send_Data_2(); //上传参数
|
|
|
|
RX_BUF_ZERO(23);
|
|
|
|
RX_BUF_ZERO(23);
|
|
|
|
//printf(" \r\n");
|
|
|
|
//printf(" \r\n");
|
|
|
|
RX_BUF_Transfer(0,23);
|
|
|
|
RX_BUF_Transfer(0,23);
|
|
|
|
//printf("\r\n");
|
|
|
|
//printf("\r\n");
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
RX_BUF_Printf(128);
|
|
|
|
// printf("\r\n");
|
|
|
|
// printf("\r\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -246,6 +248,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Analysis(&n,&i,RS485_RX_BUF);
|
|
|
|
Analysis(&n,&i,RS485_RX_BUF);
|
|
|
|
printf("B6 03 cmd: batch sync\r\n");
|
|
|
|
printf("B6 03 cmd: batch sync\r\n");
|
|
|
|
|
|
|
|
Write_Init();
|
|
|
|
RX_BUF_ZERO(11);
|
|
|
|
RX_BUF_ZERO(11);
|
|
|
|
printf(" \r\n");
|
|
|
|
printf(" \r\n");
|
|
|
|
RX_BUF_Transfer(0,11);
|
|
|
|
RX_BUF_Transfer(0,11);
|
|
|
|
@ -260,6 +263,8 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
printf("B6 04 cmd: change stage\r\n");
|
|
|
|
printf("B6 04 cmd: change stage\r\n");
|
|
|
|
RTC_synchronization_ins(2023,9,1,0,00,00);
|
|
|
|
RTC_synchronization_ins(2023,9,1,0,00,00);
|
|
|
|
now_stage=change_stage_rev1;
|
|
|
|
now_stage=change_stage_rev1;
|
|
|
|
|
|
|
|
store_stage=change_stage_rev1;
|
|
|
|
|
|
|
|
Write_Init();
|
|
|
|
RX_BUF_ZERO(8);
|
|
|
|
RX_BUF_ZERO(8);
|
|
|
|
printf(" \r\n");
|
|
|
|
printf(" \r\n");
|
|
|
|
RX_BUF_Transfer(0,8);
|
|
|
|
RX_BUF_Transfer(0,8);
|
|
|
|
@ -271,7 +276,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Batch_synchronization(&n,RS485_RX_BUF);
|
|
|
|
Batch_synchronization(&n,RS485_RX_BUF);
|
|
|
|
printf("B6 01 cmd: get one %d\r\n", n);
|
|
|
|
printf("B6 01 cmd: get one %d\r\n", n);
|
|
|
|
Write_Init();
|
|
|
|
//Write_Init();减少擦写的次数
|
|
|
|
RX_BUF_ZERO(20);
|
|
|
|
RX_BUF_ZERO(20);
|
|
|
|
printf(" \r\n");
|
|
|
|
printf(" \r\n");
|
|
|
|
RX_BUF_Transfer(0,20);
|
|
|
|
RX_BUF_Transfer(0,20);
|
|
|
|
@ -291,8 +296,8 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("%d %d %d\r\n",T,H,C);
|
|
|
|
printf("%d %d %d\r\n",T,H,C);
|
|
|
|
//printf("current params: %d:%d,hot or cold flag:%d, humidity flag:%d, alarm: %d\r\n",chour, cminute, hot_clod_flag, humidity_flag, ALARM);
|
|
|
|
printf("current params: %d:%d,hot or cold flag:%d, humidity flag:%d, alarm: %d\r\n",chour, cminute, hot_clod_flag, humidity_flag, ALARM);
|
|
|
|
//printf("led!!!\r\n");
|
|
|
|
printf("led!!!\r\n");
|
|
|
|
if(red<=1000&&blue<=1000)
|
|
|
|
if(red<=1000&&blue<=1000)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
@ -303,7 +308,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
//printf("bule=%d\r\n",blue);
|
|
|
|
//printf("bule=%d\r\n",blue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
RS485_RX_CNT=0;
|
|
|
|
RS485_RX_CNT=0;
|
|
|
|
//printf("end data to serial monitor end");
|
|
|
|
printf("end data to serial monitor end");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|