凯立版本

main
Zeng wei (曾威) 2 years ago
parent be1894a3c7
commit 24f49523c8

@ -1,5 +1,6 @@
#include "PID.h"
#include "Relays.h"
#include "USART.h"
extern u16 tem;
float cold_tem=0;
float red_tem=0;
@ -8,12 +9,14 @@ float ki=0.001;
float kd=340;
extern u8 hot_clod_flag;
extern u8 gpio_state;
extern int T;
unsigned int num=0;
PID pid;
void PID_Init()
{
//pid.set_tem=tem;//用户设定温度
pid.Kp=170;
pid.Kp=110;
pid.t=500;//PID计算周期
//pid.Ti=5000000;//积分时间
//pid.Td=1000;//微分时间
@ -25,30 +28,12 @@ void PID_Init()
void PID_Calc() //pid计算
{
float DelEk;//最近两次偏差之差
//float td;
float out;
if(pid.C1ms<(pid.t)) //计算周期未到
{
return ;
}
if(pid.set_tem>pid.now_tem+1)
{
//得到当前的偏差值,设置温度大于实际温度,加热,关闭四通阀
//GPIO_ResetBits(GPIOA,GPIO_Pin_1);//关闭四通阀
HC595_Send_Byte(gpio_state&=0xFB);//关闭四通阀 &=1111 1011 0xFB
hot_clod_flag=2;
//pid.Iout=0;
}
if(pid.now_tem>pid.set_tem+1)
{
//得到当前的偏差值,设置温度小于实际温度
//GPIO_SetBits(GPIOA,GPIO_Pin_1);//打开四通阀,制冷
HC595_Send_Byte(gpio_state|=0x04);//打开四通阀,制冷 |=0000 0100
hot_clod_flag=1;
//pid.Iout=0;
}
if(pid.set_tem>pid.now_tem)
{
@ -70,7 +55,6 @@ void PID_Calc() //pid
pid.Iout=ki*pid.SEk; //积分输出
// td=pid.Td/pid.t;
//
// kd=pid.Kp*td;
pid.Dout=kd*DelEk; //微分输出
@ -79,9 +63,8 @@ void PID_Calc() //pid
pid.Dout=0-pid.Dout;
}
//out= pid.Pout+ pid.Iout+ pid.Dout;
out= pid.Pout+pid.Iout+ pid.Dout;
//out= pid.Pout+pid.Iout+ pid.Dout;
out= pid.Pout;
if(out>pid.pwmcycle)
{
pid.OUT=pid.pwmcycle;
@ -96,4 +79,42 @@ void PID_Calc() //pid
}
pid.Ek_1=pid.Ek; //更新偏差
pid.C1ms=0;
if(pid.set_tem>pid.now_tem+1)
{
//得到当前的偏差值设置温度大于实际温度1℃加热关闭压缩机打开加热棒
/*GPIO1->报警铃 GPIO6->压缩机 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 */
//HC595_Send_Byte(gpio_state&=0xDF);//关闭压缩机 &=1101 1111 0xDF
TIM_SetCompare3(TIM3,0);
HC595_Send_Byte(gpio_state|=0x04);//打开加热棒 |=0000 0100 0x04
hot_clod_flag=2;
pid.Iout=0;
}
if(pid.now_tem>pid.set_tem)
{
//得到当前的偏差值,设置温度小于实际温度,制冷,打开压缩机,关闭加热棒
HC595_Send_Byte(gpio_state&=0xFB);//关闭加热棒 &=1111 1011 0xFB
num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
TIM_SetCompare3(TIM3,num);
//printf("%d\r\n",num);
//0-200对应0-100%如果pid.out=50,占空比就是25%//num=50*400/200=100100/400=25%
//HC595_Send_Byte(gpio_state|=0x20);//打开压缩机 |=0010 0000
hot_clod_flag=1;
//pid.Iout=0;
}
if(hot_clod_flag==1 && T<=tem-3)//制冷过程中温度下降低于设定温度0.3℃
{
//HC595_Send_Byte(gpio_state&=0xDB);//关闭压缩机 关闭加热棒 &=1101 1101 0xDB
TIM_SetCompare3(TIM3,0);//关闭压缩机
HC595_Send_Byte(gpio_state&=0xFB);//关闭加热棒
hot_clod_flag=0;
}
if(hot_clod_flag==2 && T>=tem)
{
//HC595_Send_Byte(gpio_state&=0xDB);//关闭压缩机 关闭四通阀 &=1101 1101 0xDB
TIM_SetCompare3(TIM3,0);//关闭压缩机
HC595_Send_Byte(gpio_state&=0xFB);//关闭加热棒
hot_clod_flag=0;
}
}

@ -63,7 +63,7 @@ void PWM2_Init(uint16_t Per,uint16_t Psc)
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; //TIM2_CH1
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; //TIM1_CH4
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);

@ -2,13 +2,13 @@
#include "PID.h"
void TIM3_Init(void)
void TIM2_Init(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
@ -17,48 +17,55 @@ void TIM3_Init(void)
TIM_TimeBaseStructure.TIM_Period = 1000; // 10KHz
TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1); // 1MHz
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
TIM_Cmd(TIM3,ENABLE);
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
TIM_Cmd(TIM2,ENABLE);
}
void TIM3_IRQHandler(void)
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update))
if(TIM_GetITStatus(TIM2,TIM_IT_Update))
{
pid.C1ms++;
TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //Çå³ýÖжϱêÖ¾
TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除中断标志
}
}
void TimePwm_init(int arr,int psc)
void TimePwm_init(int arr,int psc)//
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
//GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
// GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);
// GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM3_CH3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //PA1 TIM2_CH2
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OC3Init(TIM3, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
TIM_Cmd(TIM3, ENABLE);
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period=arr; //ARR
TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //PSC
TIM_TimeBaseInitStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_OCStructInit(&TIM_OCInitStructure);//给结构体赋初始值
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//输出比较模式
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//输出比较极性
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=0; //CCR的值
TIM_OC3Init(TIM3,&TIM_OCInitStructure);//TIM_OC1Init()函数用来初始化输出比较单元
TIM_Cmd(TIM3,ENABLE);//定时器使能
}

@ -3,9 +3,9 @@
#include "system.h"
void TIM3_Init(void);
void TIM2_Init(void);
void PWM_OUT(void);
void TimePwm_init(int arr,int psc);
void TimePwm_init(int arr,int psc);//
#endif

Binary file not shown.

@ -27,9 +27,9 @@ Project File Date: 11/19/2023
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\MDK5\ARM\ARMCC\Bin'
Build target 'LED'
compiling myfreertos.c...
compiling PID.c...
linking...
Program Size: Code=25324 RO-data=804 RW-data=1524 ZI-data=13220
Program Size: Code=25344 RO-data=804 RW-data=1524 ZI-data=13220
FromELF: creating hex file...
"..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s).
@ -44,7 +44,7 @@ Package Vendor: Keil
D:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:05
Build Time Elapsed: 00:00:03
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
Dependencies for Project 'control', Target 'LED': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\main.c)(0x657BF987)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\main.o --omf_browse ..\obj\main.crf --depend ..\obj\main.d)
F (.\main.c)(0x65951635)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\main.o --omf_browse ..\obj\main.crf --depend ..\obj\main.d)
I (..\myfreertos\myfreertos.h)(0x656FE939)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)
@ -54,7 +54,7 @@ I (..\HARDWARE\rtc.h)(0x656019C4)
I (..\HARDWARE\bufcut.h)(0x6537353D)
I (..\HARDWARE\iwdg.h)(0x64FC32D3)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
I (..\HARDWARE\PWMOUT.h)(0x65950285)
I (..\w5500\w5500api.h)(0x65712928)
I (..\w5500\spi.h)(0x65093ED0)
I (..\w5500\w5500.h)(0x5F374D02)
@ -138,7 +138,7 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_tim.h)(0x64FD7190)
I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
F (..\HARDWARE\PWM.c)(0x65767A1E)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pwm.o --omf_browse ..\obj\pwm.crf --depend ..\obj\pwm.d)
F (..\HARDWARE\PWM.c)(0x658E3A6B)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pwm.o --omf_browse ..\obj\pwm.crf --depend ..\obj\pwm.d)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
I (D:\MDK5\ARM\ARMCC\include\stdint.h)(0x6025237E)
@ -276,7 +276,7 @@ I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
I (..\SYSTEM\SysTick.h)(0x6530E176)
I (..\HARDWARE\Relays.h)(0x6559CD68)
F (..\HARDWARE\Relays.h)(0x6559CD68)()
F (..\HARDWARE\write.c)(0x6577D119)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\write.o --omf_browse ..\obj\write.crf --depend ..\obj\write.d)
F (..\HARDWARE\write.c)(0x657FEB48)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\write.o --omf_browse ..\obj\write.crf --depend ..\obj\write.d)
I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
@ -330,7 +330,7 @@ I (..\HARDWARE\PWM.h)(0x655DC5F0)
I (..\HARDWARE\bufcut.h)(0x6537353D)
I (..\HARDWARE\iwdg.h)(0x64FC32D3)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
I (..\HARDWARE\PWMOUT.h)(0x65950285)
I (..\w5500\w5500api.h)(0x65712928)
I (..\w5500\spi.h)(0x65093ED0)
I (..\w5500\w5500.h)(0x5F374D02)
@ -375,7 +375,7 @@ I (..\SYSTEM\system.h)(0x64BC0671)
I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
I (..\SYSTEM\SysTick.h)(0x6530E176)
F (..\HARDWARE\OSC.h)(0x64E6C94A)()
F (..\HARDWARE\rs485.c)(0x6576F269)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\rs485.o --omf_browse ..\obj\rs485.crf --depend ..\obj\rs485.d)
F (..\HARDWARE\rs485.c)(0x657FEB48)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\rs485.o --omf_browse ..\obj\rs485.crf --depend ..\obj\rs485.d)
I (..\HARDWARE\rs485.h)(0x656565E2)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
@ -429,7 +429,7 @@ I (..\HARDWARE\rtc.h)(0x656019C4)
I (..\HARDWARE\bufcut.h)(0x6537353D)
I (..\HARDWARE\iwdg.h)(0x64FC32D3)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
I (..\HARDWARE\PWMOUT.h)(0x65950285)
I (..\w5500\w5500api.h)(0x65712928)
I (..\w5500\spi.h)(0x65093ED0)
I (..\w5500\w5500.h)(0x5F374D02)
@ -440,7 +440,7 @@ I (D:\MDK5\ARM\ARMCC\include\string.h)(0x6025237E)
I (..\dns\dns.h)(0x5F377DE4)
I (..\MQTT\mqtt_api.h)(0x5F3A0FBC)
F (..\HARDWARE\rs485.h)(0x656565E2)()
F (..\HARDWARE\rtc.c)(0x6576ACBE)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\rtc.o --omf_browse ..\obj\rtc.crf --depend ..\obj\rtc.d)
F (..\HARDWARE\rtc.c)(0x657FEB48)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\rtc.o --omf_browse ..\obj\rtc.crf --depend ..\obj\rtc.d)
I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
@ -475,7 +475,7 @@ I (..\SYSTEM\Systick.h)(0x6530E176)
I (..\SYSTEM\USART.h)(0x655DAB3D)
I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
F (..\HARDWARE\rtc.h)(0x656019C4)()
F (..\HARDWARE\bufcut.c)(0x6576ACBE)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\bufcut.o --omf_browse ..\obj\bufcut.crf --depend ..\obj\bufcut.d)
F (..\HARDWARE\bufcut.c)(0x657FEB48)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\bufcut.o --omf_browse ..\obj\bufcut.crf --depend ..\obj\bufcut.d)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
I (D:\MDK5\ARM\ARMCC\include\stdint.h)(0x6025237E)
@ -539,7 +539,7 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
F (..\HARDWARE\iwdg.h)(0x64FC32D3)()
F (..\HARDWARE\PID.c)(0x6576B840)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pid.o --omf_browse ..\obj\pid.crf --depend ..\obj\pid.d)
F (..\HARDWARE\PID.c)(0x6596ABCE)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pid.o --omf_browse ..\obj\pid.crf --depend ..\obj\pid.d)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\Relays.h)(0x6559CD68)
I (..\SYSTEM\system.h)(0x64BC0671)
@ -571,9 +571,11 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_tim.h)(0x64FD7190)
I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
I (..\SYSTEM\USART.h)(0x655DAB3D)
I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
F (..\HARDWARE\PID.h)(0x6559C02A)()
F (..\HARDWARE\PWMOUT.c)(0x655DCACD)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pwmout.o --omf_browse ..\obj\pwmout.crf --depend ..\obj\pwmout.d)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
F (..\HARDWARE\PWMOUT.c)(0x65951550)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\pwmout.o --omf_browse ..\obj\pwmout.crf --depend ..\obj\pwmout.d)
I (..\HARDWARE\PWMOUT.h)(0x65950285)
I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
@ -604,7 +606,7 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
I (..\HARDWARE\PID.h)(0x6559C02A)
F (..\HARDWARE\PWMOUT.h)(0x655DCACD)()
F (..\HARDWARE\PWMOUT.h)(0x65950285)()
F (..\SYSTEM\system.c)(0x64BC066E)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\system.o --omf_browse ..\obj\system.crf --depend ..\obj\system.d)
I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5)
@ -1508,7 +1510,7 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
I (..\w5500\Types.h)(0x5F374D02)
F (..\w5500\w5500api.c)(0x6576ACB7)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\w5500api.o --omf_browse ..\obj\w5500api.crf --depend ..\obj\w5500api.d)
F (..\w5500\w5500api.c)(0x657FEB48)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\w5500api.o --omf_browse ..\obj\w5500api.crf --depend ..\obj\w5500api.d)
I (..\w5500\w5500api.h)(0x65712928)
I (..\SYSTEM\SysTick.h)(0x6530E176)
I (..\SYSTEM\system.h)(0x64BC0671)
@ -2506,7 +2508,7 @@ I (..\FreeRTOS\portable\RVDS\ARM_CM3\portmacro.h)(0x573F3A17)
I (..\FreeRTOS\include\mpu_wrappers.h)(0x573F3A16)
I (..\FreeRTOS\include\task.h)(0x573F3A16)
I (..\FreeRTOS\include\list.h)(0x573F3A16)
F (..\myfreertos\myfreertos.c)(0x657FBC59)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\myfreertos.o --omf_browse ..\obj\myfreertos.crf --depend ..\obj\myfreertos.d)
F (..\myfreertos\myfreertos.c)(0x6593D99E)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\myfreertos.o --omf_browse ..\obj\myfreertos.crf --depend ..\obj\myfreertos.d)
I (..\myfreertos\myfreertos.h)(0x656FE939)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)
@ -2560,7 +2562,7 @@ I (..\HARDWARE\rtc.h)(0x656019C4)
I (..\HARDWARE\bufcut.h)(0x6537353D)
I (..\HARDWARE\iwdg.h)(0x64FC32D3)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
I (..\HARDWARE\PWMOUT.h)(0x65950285)
I (..\w5500\w5500api.h)(0x65712928)
I (..\w5500\spi.h)(0x65093ED0)
I (..\w5500\w5500.h)(0x5F374D02)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -31,3 +31,5 @@
..\obj\pid.o: ..\STM32F10x_FWLib\inc\stm32f10x_usart.h
..\obj\pid.o: ..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h
..\obj\pid.o: ..\STM32F10x_FWLib\inc\misc.h
..\obj\pid.o: ..\SYSTEM\USART.h
..\obj\pid.o: D:\MDK5\ARM\ARMCC\Bin\..\include\stdio.h

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -3,7 +3,7 @@
extern u16 tem,hum,red,blue,white;
extern u8 now_stage;
extern u8 hour,min;
extern u8 gpio_state;
//int a_value=20;
//int b_value=20;
//int c_value=20;
@ -15,28 +15,29 @@ int main(void)
PID_Init();
//printf("复位\r\n");
TimePwm_init(400-1,360-1);// 72M/400/360=500HZ
//GPIO_ResetBits(GPIOB,GPIO_Pin_0);
// TIM_SetCompare3(TIM3,0);
RS485_1_Init(4800);
HC595_Pin_Init();
RTC_Init(); //需要放在HC595_Pin_Init()后面
TIM3_Init();
TIM2_Init();
Read_Init();//读flash的值赋值给total数组以及阶段
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);
//Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);
PWM1_Init(500-1,720-1);
PWM2_Init(500-1,720-1);
PWM3_Init(500-1,720-1);
TIM4_Init(10000-1,7200-1);//1s计数溢出更新中断10000*7200/72M=1s,内含喂狗程序
iwdg_my_Init(5,16000); //不喂狗12s复位
// //RX_BUF_Init();
HC595_Send_Byte(0x02);//默认打开压缩机
TIM_SetCompare3(TIM3,170);
//delay_xms(10000);//压缩机启动时10秒内以一半的额定功率工作
//RX_BUF_Init();
//GPIO_ResetBits(GPIOB,GPIO_Pin_0);
//红白蓝对应J10 J11 J12
PWM_SetCompare1(0);//J10
PWM_SetCompare2(0);//J12
PWM_SetCompare4(0);//J11
// printf("init start\r\n");
//printf("init start\r\n");
// init_Net();//网络初始化
// printf("init_Net OK");
//printf("init_Net OK");
//while(!do_dns((u8 *)"hp8oQhMZJ67.iot-as-mqtt.cn-shanghai.aliyuncs.com"));//网域名称
os_init();
while(1)

@ -37,7 +37,7 @@ extern float ki;
u8 batch_sync_buf[11];//单个同步剪切得到的数组
u8 ins_1=0;
int diff=0;
u8 gpio_state=0x02;//继电器状态
u8 gpio_state=0x00;//继电器状态
u8 NUM=1;//批量同步发送的阶段号
u8 n;//阶段号
u16 i;//序列号
@ -59,7 +59,7 @@ int T=0,H=0,C=0,G=0, current_T=0;
extern u8 total[];
float Humidity=0;
float temperature=0;
unsigned int num=0;
//u8 RS485_RX_BUF[64];
@ -192,7 +192,7 @@ void Sensor_Communication_task(void *pvParameters)
//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->报警铃 GPIO6->压缩机 GPIO3->加热棒 GPIO4—>新风风扇 GPIO5->加湿器 */
if((T<(tem-20)||T>(tem+20)||H<(hum-100)||H>(hum+100))&&(tick>610))//温度偏差2℃报警湿度偏差10报警
{
@ -213,8 +213,11 @@ void Sensor_Communication_task(void *pvParameters)
pid.set_tem=tem/10.0;
pid.now_tem=T/10.0;
PID_Calc();
num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
TIM_SetCompare3(TIM3,0.845*num); //0-200对应0-100%如果pid.out=50,占空比就是25%//num=50*400/200=100100/400=25%
//num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
//TIM_SetCompare3(TIM3,num);
//TIM_SetCompare3(TIM3,0.845*num);
//printf("%d\r\n",num);
//0-200对应0-100%如果pid.out=50,占空比就是25%//num=50*400/200=100100/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;
}
@ -252,31 +255,83 @@ void Sensor_Communication_task(void *pvParameters)
}
else
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6&&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_Transfer(0,11);
//printf("batch sync over\r\n");
//RX_BUF_Printf(128);
}
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_Transfer(0,8);
//printf("change stage over\r\n");
//RX_BUF_Printf(128);
}
else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB6&&RS485_RX_BUF_COPY[2]==0x01)
{
Host_Computer_Communication();
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();减少擦写的次数
//printf("get one over\r\n");
RX_BUF_Transfer(0,20);
//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[15]==0xFF&&RS485_RX_BUF[16]==0xFF)
{
//printf("cut overdata of B6 03 \r\n");
RX_BUF_Transfer(0,17);
}
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)
{
//printf("cut overdata of B6 03 \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[13]==0xFF)
{
//printf("cut overdata of B6 04 \r\n");
//RX_BUF_Printf(128);
RX_BUF_Transfer(0,14);
}
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)
{
//printf("cut overdata of Upper computer \r\n");
//RX_BUF_Printf(128);
RX_BUF_Transfer(0,9);
//RX_BUF_Printf(128);
}
else
{
int ZERO_Count=0;
//if()与while()的顺序不能变
if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
{
RX_BUF_Transfer(0,1);
}
// else
// {
// int index=0;
// //if()与while()的顺序不能变
// if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
// {
// RX_BUF_Transfer(0,1);
// }
//
// while(RS485_RX_BUF_COPY[index]==0x00)
// {
// index++;
// }
// RX_BUF_Transfer(0,index);
// printf("previous array cut\r\n");
// }
while(RS485_RX_BUF_COPY[ZERO_Count]==0x00)
{
ZERO_Count++;
}
RX_BUF_Transfer(0,ZERO_Count);
//printf("previous array cut\r\n");
//RX_BUF_Printf(128);
}
}
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("led!!!\r\n");
if(red<=1000&&blue<=1000)
@ -296,88 +351,88 @@ void Sensor_Communication_task(void *pvParameters)
}
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_Transfer(0,11);
}
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_Transfer(0,8);
}
if(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_Transfer(0,20);
}
}
else 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)//单个同步默认带的数据
{
//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)//单个同步默认带的数据
{
//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)//阶段切换默认带的数据
{
//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)//上位机默认带的数据
{
//printf("cut overdata of Upper computer \r\n");
//RX_BUF_Printf(128);
RX_BUF_Transfer(0,9);
//RX_BUF_Printf(128);
}
}
else
{
//int ZERO_Count=0;
//if()与while()的顺序不能变
// if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
//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)//单个同步
// {
// RX_BUF_Transfer(0,1);
// //printf("the number is no zero\r\n");
// }
// 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_Transfer(0,11);
//
// while(RS485_RX_BUF_COPY[ZERO_Count]==0x00)
// }
// if(RS485_RX_BUF_COPY[2]==0x04)//阶段切换
// {
// ZERO_Count++;
// 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_Transfer(0,8);
// }
// RX_BUF_Transfer(0,ZERO_Count);
RX_BUF_Transfer(0,1);
//printf("previous array cut\r\n");
// if(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_Transfer(0,20);
// }
// }
// else 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)//单个同步默认带的数据
// {
// //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)//单个同步默认带的数据
// {
// //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)//阶段切换默认带的数据
// {
// //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)//上位机默认带的数据
// {
// //printf("cut overdata of Upper computer \r\n");
// //RX_BUF_Printf(128);
// RX_BUF_Transfer(0,9);
// //RX_BUF_Printf(128);
//
// }
// }
// else
// {
// //int ZERO_Count=0;
// //if()与while()的顺序不能变
//// if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
//// {
//// RX_BUF_Transfer(0,1);
//// //printf("the number is no zero\r\n");
//// }
////
//// while(RS485_RX_BUF_COPY[ZERO_Count]==0x00)
//// {
//// ZERO_Count++;
//// }
//// RX_BUF_Transfer(0,ZERO_Count);
//
// RX_BUF_Transfer(0,1);
// //printf("previous array cut\r\n");
}
}
// }
//}

Loading…
Cancel
Save