|
|
|
|
@ -5,6 +5,28 @@ char subTopic[512]="/sys/hp8oQhMZJ67/Device1/thing/service/property/set";//
|
|
|
|
|
|
|
|
|
|
#define MQTT_SOCK 5
|
|
|
|
|
|
|
|
|
|
//任务优先级
|
|
|
|
|
#define START_TASK_PRIO 0
|
|
|
|
|
//任务堆栈大小
|
|
|
|
|
#define START_STK_SIZE 128
|
|
|
|
|
//任务句柄
|
|
|
|
|
TaskHandle_t StartTask_Handler;
|
|
|
|
|
//任务函数
|
|
|
|
|
void start_task(void *pvParameters);
|
|
|
|
|
|
|
|
|
|
//任务优先级
|
|
|
|
|
#define Sensor_Communication_TASK_PRIO 1//与传感器通信
|
|
|
|
|
//任务堆栈大小
|
|
|
|
|
#define Sensor_Communication_STK_SIZE 512
|
|
|
|
|
//任务句柄
|
|
|
|
|
TaskHandle_t Sensor_CommunicationTask_Handler;
|
|
|
|
|
//任务函数
|
|
|
|
|
void Sensor_Communication_task(void *pvParameters);
|
|
|
|
|
|
|
|
|
|
void Host_Computer_Communication(void);
|
|
|
|
|
|
|
|
|
|
int isZeros(u8 arr[]) ;
|
|
|
|
|
u8 ZERO_Count=0;
|
|
|
|
|
u8 RS485_RX_BUF_COPY[128]={0};
|
|
|
|
|
u8 cnt_flag=0,sub_flag=0,pub_flag=0;
|
|
|
|
|
u16 time=0;//记录ping服务器的时间
|
|
|
|
|
@ -26,6 +48,7 @@ u8 hot_clod_flag=0;//
|
|
|
|
|
u8 humidity_flag=0;//加湿除湿标志位。 humidity_flag=0,不加湿不除湿; humidity_flag=2,加湿; humidity_flag=1,除湿
|
|
|
|
|
u8 ALARM=0;//报警标志位。ALARM=0,不报警;ALARM=1,报警
|
|
|
|
|
u16 tick=0;//tick大于600,触发报警条件会报警;小于600则不报警。
|
|
|
|
|
u8 Feed_Dog_Count=0;//喂狗计时
|
|
|
|
|
u8 now_stage=1;//当前运行阶段
|
|
|
|
|
u16 tem,hum,red,blue,white;
|
|
|
|
|
u8 hour,min;
|
|
|
|
|
@ -42,23 +65,6 @@ unsigned int num=0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//任务优先级
|
|
|
|
|
#define START_TASK_PRIO 0
|
|
|
|
|
//任务堆栈大小
|
|
|
|
|
#define START_STK_SIZE 128
|
|
|
|
|
//任务句柄
|
|
|
|
|
TaskHandle_t StartTask_Handler;
|
|
|
|
|
//任务函数
|
|
|
|
|
void start_task(void *pvParameters);
|
|
|
|
|
|
|
|
|
|
//任务优先级
|
|
|
|
|
#define Sensor_Communication_TASK_PRIO 1//与传感器通信
|
|
|
|
|
//任务堆栈大小
|
|
|
|
|
#define Sensor_Communication_STK_SIZE 512
|
|
|
|
|
//任务句柄
|
|
|
|
|
TaskHandle_t Sensor_CommunicationTask_Handler;
|
|
|
|
|
//任务函数
|
|
|
|
|
void Sensor_Communication_task(void *pvParameters);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*********************
|
|
|
|
|
@ -68,7 +74,7 @@ void Sensor_Communication_task(void *pvParameters);
|
|
|
|
|
*********************/
|
|
|
|
|
void os_init(void)
|
|
|
|
|
{
|
|
|
|
|
printf("入口函数调用成功\r\n");
|
|
|
|
|
//printf("入口函数调用成功\r\n");
|
|
|
|
|
xTaskCreate( (TaskFunction_t)start_task,
|
|
|
|
|
(char *)"start_task",
|
|
|
|
|
(uint16_t)START_STK_SIZE,
|
|
|
|
|
@ -115,8 +121,8 @@ void start_task(void*pvParameters)
|
|
|
|
|
(void* )NULL,
|
|
|
|
|
(UBaseType_t )Sensor_Communication_TASK_PRIO,
|
|
|
|
|
(TaskHandle_t* )&Sensor_CommunicationTask_Handler);
|
|
|
|
|
if(handler==pdPASS){printf("与传感器通信任务创建成功\r\n");}
|
|
|
|
|
else{printf("与传感器通信任务创建失败\r\n");}
|
|
|
|
|
// if(handler==pdPASS){printf("与传感器通信任务创建成功\r\n");}
|
|
|
|
|
// else{printf("与传感器通信任务创建失败\r\n");}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //创建控灯任务
|
|
|
|
|
@ -157,13 +163,13 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
now_stage=timelong_Compare();//
|
|
|
|
|
//printf("%d %d\r\n",chour,cminute);
|
|
|
|
|
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已被注释)
|
|
|
|
|
//printf("send finish\r\n");
|
|
|
|
|
delay_xms(500);
|
|
|
|
|
delay_xms(200);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RS485_1_Send_Data_3();
|
|
|
|
|
delay_xms(500);
|
|
|
|
|
delay_xms(200);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
bufcut_Init(RS485_RX_BUF_COPY,RS485_RX_BUF,0,128);
|
|
|
|
|
RS485_RX_CNT=0;
|
|
|
|
|
@ -191,14 +197,12 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
if((T<(tem-20)||T>(tem+20)||H<(hum-100)||H>(hum+100))&&(tick>610))//温度偏差2℃报警,湿度偏差10报警
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x01);
|
|
|
|
|
//GPIO_SetBits(GPIOB,GPIO_Pin_1);//打开报警铃 GPIO1->PB1 |=0000 0001 0x01
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x01);//打开报警铃 GPIO1->PB1 |=0000 0001 0x01
|
|
|
|
|
ALARM=1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xFE);
|
|
|
|
|
//GPIO_ResetBits(GPIOB,GPIO_Pin_1);//关闭报警铃 &=1111 1110 0xFE
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xFE);//关闭报警铃 &=1111 1110 0xFE
|
|
|
|
|
ALARM=0;
|
|
|
|
|
}
|
|
|
|
|
if(T<600&&T>-30)
|
|
|
|
|
@ -211,7 +215,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
pid.now_tem=T/10.0;
|
|
|
|
|
PID_Calc();
|
|
|
|
|
num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
|
|
|
|
|
TIM_SetCompare4(TIM4,0.845*num); //0-200对应0-100%,如果pid.out=50,占空比就是25%,//num=50*400/200=100,100/400=25%
|
|
|
|
|
TIM_SetCompare3(TIM3,0.845*num); //0-200对应0-100%,如果pid.out=50,占空比就是25%,//num=50*400/200=100,100/400=25%
|
|
|
|
|
//printf("%d ,%d ,%d ,%d ,%f ,%f ,%f ,%f ,%f ,%f ,%f ,%.3f\r\n",T,H,C,num,(pid.set_tem*10),pid.Kp,ki,kd,pid.Pout,pid.Iout,pid.Dout,num/399.0);
|
|
|
|
|
current_T=T;
|
|
|
|
|
}
|
|
|
|
|
@ -220,137 +224,57 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
if(H>(hum+50))//湿度高于设定值5,打开新风风扇 GPIO4->PD1
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x08);
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xEF);
|
|
|
|
|
// GPIO_SetBits(GPIOD,GPIO_Pin_1);//打开新风风扇 |=0000 1000 0x08
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_0);//关闭加湿器 &=1110 1111 0xEF
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x08);//打开新风风扇 |=0000 1000 0x08
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xEF);//关闭加湿器 &=1110 1111 0xEF
|
|
|
|
|
humidity_flag=1; //除湿
|
|
|
|
|
}
|
|
|
|
|
if(H<(hum-50))//湿度低于设定值5,打开加湿器 GPIO5->PD0
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x10);
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xF7);
|
|
|
|
|
// GPIO_SetBits(GPIOD,GPIO_Pin_0);//启动加湿器 |=0001 0000 0x10
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇 &=1111 0111 0xF7
|
|
|
|
|
HC595_Send_Byte(gpio_state|=0x10);//启动加湿器 |=0001 0000 0x10
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xF7);//关闭风扇 &=1111 0111 0xF7
|
|
|
|
|
humidity_flag=2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( humidity_flag==1 && H<=hum)
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xE7);
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇 &=1110 0111 0xE7
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_0);//关闭加湿器
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xE7);//关闭风扇 关闭加湿器 &=1110 0111 0xE7
|
|
|
|
|
humidity_flag=0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( humidity_flag==2 && H>=hum)
|
|
|
|
|
{
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xE7);
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_0);//关闭加湿器 &=1110 0111 0xE7
|
|
|
|
|
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇
|
|
|
|
|
HC595_Send_Byte(gpio_state&=0xE7);//关闭加湿器 关闭风扇 &=1110 0111 0xE7
|
|
|
|
|
humidity_flag=0;
|
|
|
|
|
}
|
|
|
|
|
//printf("!!!");
|
|
|
|
|
RS485_1_Send_Data_2(); //上传参数
|
|
|
|
|
RX_BUF_ZERO(23);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
RX_BUF_Transfer(0,23);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
// printf("\r\n");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6&&RS485_RX_BUF_COPY[2]==0x03)//单个同步
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE)
|
|
|
|
|
{
|
|
|
|
|
Analysis(&n,&i,RS485_RX_BUF_COPY);
|
|
|
|
|
//printf("B6 03 cmd: batch sync\r\n");
|
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
|
Write_Init();
|
|
|
|
|
RX_BUF_ZERO(11);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
RX_BUF_Transfer(0,11);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
Host_Computer_Communication();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6&&RS485_RX_BUF_COPY[2]==0x04)//切换阶段
|
|
|
|
|
{
|
|
|
|
|
change_stage_rev1=RS485_RX_BUF_COPY[3];
|
|
|
|
|
//printf("B6 04 cmd: change stage\r\n");
|
|
|
|
|
RTC_synchronization_ins(2023,9,1,0,00,00);
|
|
|
|
|
now_stage=change_stage_rev1;
|
|
|
|
|
store_stage=change_stage_rev1;
|
|
|
|
|
Write_Init();
|
|
|
|
|
RX_BUF_ZERO(8);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
RX_BUF_Transfer(0,8);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
}
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6&&RS485_RX_BUF_COPY[2]==0x01)//批量同步
|
|
|
|
|
{
|
|
|
|
|
Batch_synchronization(&n,RS485_RX_BUF_COPY);
|
|
|
|
|
//printf("B6 01 cmd: get one %d\r\n", n);
|
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
|
//Write_Init();减少擦写的次数
|
|
|
|
|
RX_BUF_ZERO(20);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
RX_BUF_Transfer(0,20);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
}
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1&&RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[15]==0xFF&&RS485_RX_BUF[16]==0xFF)//单个同步默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(17);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
//printf("cut overdata of B6 03 \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,17);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1&&RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[14]==0xFF&&RS485_RX_BUF[15]==0xFF)//单个同步默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(16);
|
|
|
|
|
//printf("cut overdata of B6 03 \r\n");
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,16);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1&&RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[12]==0xFF&&RS485_RX_BUF_COPY[13]==0xFF)//阶段切换默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(14);
|
|
|
|
|
//printf("cut overdata of B6 04 \r\n");
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,14);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1&&RS485_RX_BUF_COPY[2]==0x01&&RS485_RX_BUF_COPY[7]==0xFF&&RS485_RX_BUF_COPY[8]==0xFF)//上位机默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(9);
|
|
|
|
|
//printf("cut overdata of Upper computer \r\n");
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,9);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
printf("previous array cut\r\n");
|
|
|
|
|
RX_BUF_Transfer(0,1);
|
|
|
|
|
//printf(" \r\n");
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
//printf("previous array cut\r\n");
|
|
|
|
|
while(RS485_RX_BUF_COPY[0]==0x00)//前面数据为0,删掉
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_Transfer(0,1);
|
|
|
|
|
}
|
|
|
|
|
if((RS485_RX_BUF_COPY[0]!=0x00))//不为0,处理掉
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_Transfer(0,1);
|
|
|
|
|
}
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
//printf("\r\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//printf("%d %d %d\r\n",T,H,C);
|
|
|
|
|
printf("%d, %d , %d\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("led!!!\r\n");
|
|
|
|
|
if(red<=1000&&blue<=1000)
|
|
|
|
|
@ -358,7 +282,7 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
|
|
|
|
|
PWM_SetCompare1((red/100.0*3.5+28));//J9
|
|
|
|
|
PWM_SetCompare2((blue/100.0*3.5+28));//J11
|
|
|
|
|
PWM_SetCompare4((blue/100.0*3.5+28));//J10
|
|
|
|
|
PWM_SetCompare4((white/100.0*3.5+28));//J10
|
|
|
|
|
//printf("red=%d\r\n",red);
|
|
|
|
|
//printf("bule=%d\r\n",blue);
|
|
|
|
|
}
|
|
|
|
|
@ -370,22 +294,79 @@ void Sensor_Communication_task(void *pvParameters)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//void led_task(void *pvParameters)
|
|
|
|
|
//{
|
|
|
|
|
// while(1)
|
|
|
|
|
// {
|
|
|
|
|
// printf("led!!!\r\n");
|
|
|
|
|
// if(red<=1000&&blue<=1000)
|
|
|
|
|
// {
|
|
|
|
|
void Host_Computer_Communication(void)
|
|
|
|
|
{
|
|
|
|
|
if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6)
|
|
|
|
|
{
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x03)//单个同步
|
|
|
|
|
{
|
|
|
|
|
Analysis(&n,&i,RS485_RX_BUF_COPY);
|
|
|
|
|
//printf("B6 03 cmd: batch sync\r\n");
|
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
|
Write_Init();
|
|
|
|
|
RX_BUF_ZERO(11);
|
|
|
|
|
RX_BUF_Transfer(0,11);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x04)//阶段切换
|
|
|
|
|
{
|
|
|
|
|
change_stage_rev1=RS485_RX_BUF_COPY[3];
|
|
|
|
|
//printf("B6 04 cmd: change stage\r\n");
|
|
|
|
|
RTC_synchronization_ins(2023,9,1,0,00,00);
|
|
|
|
|
now_stage=change_stage_rev1;
|
|
|
|
|
store_stage=change_stage_rev1;
|
|
|
|
|
Write_Init();
|
|
|
|
|
RX_BUF_ZERO(8);
|
|
|
|
|
RX_BUF_Transfer(0,8);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x03)//批量同步
|
|
|
|
|
{
|
|
|
|
|
Batch_synchronization(&n,RS485_RX_BUF_COPY);
|
|
|
|
|
//printf("B6 01 cmd: get one %d\r\n", n);
|
|
|
|
|
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);//更新对应阶段号的参数
|
|
|
|
|
//Write_Init();减少擦写的次数
|
|
|
|
|
RX_BUF_ZERO(20);
|
|
|
|
|
RX_BUF_Transfer(0,20);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1)
|
|
|
|
|
{
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[15]==0xFF&&RS485_RX_BUF[16]==0xFF)//单个同步默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(17);
|
|
|
|
|
//printf("cut overdata of B6 03 \r\n");
|
|
|
|
|
RX_BUF_Transfer(0,17);
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[14]==0xFF&&RS485_RX_BUF[15]==0xFF)//单个同步默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(16);
|
|
|
|
|
//printf("cut overdata of B6 03 \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,16);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[12]==0xFF&&RS485_RX_BUF_COPY[13]==0xFF)//阶段切换默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(14);
|
|
|
|
|
//printf("cut overdata of B6 04 \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,14);
|
|
|
|
|
}
|
|
|
|
|
if(RS485_RX_BUF_COPY[2]==0x01&&RS485_RX_BUF_COPY[7]==0xFF&&RS485_RX_BUF_COPY[8]==0xFF)//上位机默认带的数据
|
|
|
|
|
{
|
|
|
|
|
RX_BUF_ZERO(9);
|
|
|
|
|
//printf("cut overdata of Upper computer \r\n");
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
RX_BUF_Transfer(0,9);
|
|
|
|
|
//RX_BUF_Printf(128);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PWM_SetCompare1((red/10));//J9
|
|
|
|
|
// PWM_SetCompare2((blue/10));//J11
|
|
|
|
|
// //PWM_SetCompare4((white/10));//J10
|
|
|
|
|
// }
|
|
|
|
|
// vTaskDelay(5000);
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|