掉电数据保存

把数据写入flash,实现了掉电重启,控制板还可以在掉电前的阶段运行
before_die
kafeijiaasamu 2 years ago
parent 518ebe2610
commit 368f181ebc

@ -22,23 +22,23 @@ void HC595_Pin_Init(void){
//BKP_ITConfig(DISABLE); /* 禁止TAMPER 中断*/
}
void Relays_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);//½ÓѹËõ»ú
delay_ms(20);
// printf("relays_init!!!\r\n");
}
//void Relays_Init(void)
//{
// GPIO_InitTypeDef GPIO_InitStructure;
//
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_Init(GPIOB, &GPIO_InitStructure);
//
// GPIO_ResetBits(GPIOB,GPIO_Pin_0);//½ÓѹËõ»ú
// delay_ms(20);
//
//// printf("relays_init!!!\r\n");
//
//}
void HC595_Send_Data(u8 data)
{
u8 i = 0;

@ -6,7 +6,7 @@
u8 sendbuf[29]={0xEE,0xB5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
u8 sendbuf[27]={0xEE,0xB5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFC,0xFF,0xFF};//发送给串口屏的实时数据
u8 sendbuf_crc[20]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
@ -370,16 +370,9 @@ void RS485_1_Send_Data_1(u8 *buf,u8 len)
//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)
void RS485_1_Send_Data_2(void)//上传温湿度二氧化碳
{
u8 a;
RS485_1_TX_EN=1; //设置为发送模式
// sendbuf[3]=RS485_RX_BUF[3];
// sendbuf[4]=RS485_RX_BUF[4];//温度
// sendbuf[5]=RS485_RX_BUF[5];
// sendbuf[6]=RS485_RX_BUF[6];//湿度
u8 a;
RS485_1_TX_EN=1; //设置为发送模式
if(T<=500)
{
@ -396,7 +389,6 @@ void RS485_1_Send_Data_2(void)//
sendbuf[4]=TEM2;
sendbuf[5]=HUM1;
sendbuf[6]=HUM2;
RED_LIGHT=total[9 + 18 * (now_stage - 1)]<<8|total[10 + 18 * (now_stage - 1)];
BLUE_LIGHT=total[11 + 18 * (now_stage - 1)]<<8|total[12 + 18 * (now_stage - 1)];
WHITE_LIGHT=total[13 + 18 * (now_stage - 1)]<<8|total[14+ 18 * (now_stage - 1)];
@ -415,7 +407,6 @@ void RS485_1_Send_Data_2(void)//
white_light1=total[13 + 18 * (now_stage - 1)];
white_light2=total[14 + 18 * (now_stage - 1)];
}
sendbuf[7]=red_light1;
sendbuf[8]=red_light2;//红光
sendbuf[9]=blue_light1;
@ -429,7 +420,6 @@ void RS485_1_Send_Data_2(void)//
CO2_1=RS485_RX_BUF[19];
CO2_2=RS485_RX_BUF[20];
}
sendbuf[13]=CO2_1;
sendbuf[14]=CO2_2;
if(now_stage<7)
@ -477,17 +467,23 @@ void RS485_1_Send_Data_2(void)//
// {
// printf("%x ",sendbuf[i]);
// }
sendbuf[0]=0xEE;
sendbuf[1]=0xB5;
sendbuf[2]=0x05;
sendbuf[23]=0xFF;
sendbuf[24]=0xFC;
sendbuf[25]=0xFF;
sendbuf[26]=0xFF;
printf("%x\r\n",sendbuf[0]);
for(a=0;a<27;a++) //循环发送数据
{
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
USART_SendData(USART1,sendbuf[a]);
if(a==0)printf("%x\r\n",sendbuf[0]);
}
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
//RS485_RX_CNT=0;
//RS485_RX_CNT=0;
RS485_1_TX_EN=0; //设置为接收模式
}

@ -84,8 +84,8 @@ u8 RTC_Init(void)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能PWR和BKP外设时钟
PWR_BackupAccessCmd(ENABLE); //使能后备寄存器访问
// if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) //从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
// {
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) //从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
{
BKP_DeInit(); //复位备份区域
// 使用外部晶振
RCC_HSEConfig(RCC_HSE_ON);
@ -112,14 +112,14 @@ u8 RTC_Init(void)
RTC_ExitConfigMode(); //退出配置模式
BKP_WriteBackupRegister(BKP_DR1, 0X5050); //向指定的后备寄存器中写入用户程序数据
// }
// else//系统继续计时
// {
}
else//系统继续计时
{
// RTC_WaitForSynchro(); //等待最近一次对RTC寄存器的写操作完成
// RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能RTC秒中断
// RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
// }
RTC_WaitForSynchro(); //等待最近一次对RTC寄存器的写操作完成
RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能RTC秒中断
RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
}
RTC_NVIC_Config();//RCT中断分组设置
RTC_Get(&a,&b);//更新时间

@ -7,6 +7,8 @@
#include "myfreertos.h"
extern u8 RS485_RX_BUF[128];//
//extern u8 buf[51];
extern u8 store_stage;
u8 read_stage=1;//从flash读取出来的阶段号
extern u8 now_stage;
extern u8 chour;
extern u8 cminute;
@ -49,15 +51,22 @@ void Write_Init(void)
W25QXX_Init();
W25QXX_Erase_Sector(0x000000);
delay_ms(150);
W25QXX_Write_NoCheck(total,0x000000,108);//把数据写入flash
W25QXX_Write_NoCheck(&store_stage,0x00006D,1);//把当前运行阶段写入flash
W25QXX_Read(ArrayRead,0x000000,108);//把数据读出来
}
void Read_Init(void)
{
W25QXX_Init();
W25QXX_Read(ArrayRead,0x000000,108);//把数据读出来
bufcut_Init(total,ArrayRead,0,109);
bufcut_Init(total,ArrayRead,0,109);//把读出来的数据赋值给total数组
W25QXX_Read(&read_stage,0x00006D,1);
now_stage=read_stage;//读出来的阶段赋值给当前阶段
printf("%d\r\n",now_stage);
printf("\r\n");
printf("\r\n");
for(int i=0;i<108;i++)
{
printf("%d ",ArrayRead[i]);
@ -109,14 +118,20 @@ u8 timelong_Compare()
current_minute = chour * 60 + cminute;
total_minute = total[18 * now_stage - 15] * 60 + total[18 * now_stage - 14];
if (current_minute >= total_minute) {
if (current_minute >= total_minute)
{
RTC_synchronization_ins(2023,9,1,0,00,00);
if (now_stage == 6) {
if (now_stage == 6)
{
store_stage=1;
Write_Init();
return 1;
}
store_stage=now_stage + 1;
Write_Init();
return now_stage + 1;
}
store_stage=now_stage;
return now_stage;
}

Binary file not shown.

@ -29,7 +29,7 @@ Project File Date: 11/19/2023
Build target 'LED'
compiling main.c...
linking...
Program Size: Code=25516 RO-data=292 RW-data=496 ZI-data=12824
Program Size: Code=26140 RO-data=368 RW-data=496 ZI-data=12824
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:02
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)(0x656D3CAF)(--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)(0x656EE284)(--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)(0x655DC049)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)
@ -231,7 +231,7 @@ I (..\SYSTEM\SysTick.h)(0x6530E176)
I (..\SYSTEM\USART.h)(0x655DAB3D)
I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
F (..\HARDWARE\W25Q128_Ins.h)(0x64D48CD3)()
F (..\HARDWARE\Relays.c)(0x6565B0B9)(--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\relays.o --omf_browse ..\obj\relays.crf --depend ..\obj\relays.d)
F (..\HARDWARE\Relays.c)(0x656E81BC)(--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\relays.o --omf_browse ..\obj\relays.crf --depend ..\obj\relays.d)
I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58)
I (D:\MDK5\ARM\ARMCC\include\stdint.h)(0x6025237E)
@ -266,7 +266,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)(0x656D3BEF)(--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)(0x656EE255)(--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)
@ -356,7 +356,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)(0x6566AA01)(--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)(0x656E9F55)(--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)
@ -412,7 +412,7 @@ I (..\HARDWARE\iwdg.h)(0x64FC32D3)
I (..\HARDWARE\PID.h)(0x6559C02A)
I (..\HARDWARE\PWMOUT.h)(0x655DCACD)
F (..\HARDWARE\rs485.h)(0x656565E2)()
F (..\HARDWARE\rtc.c)(0x6566E0DB)(--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)(0x656ECFB0)(--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)
@ -2474,7 +2474,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)(0x6569899D)(--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)(0x656EDFD6)(--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)(0x655DC049)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)

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.

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

@ -165,6 +165,22 @@
<ExecCommand></ExecCommand>
<Expression>0x0002FFFE</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>1</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>

@ -16,7 +16,7 @@ int main(void)
HC595_Pin_Init();
RTC_Init(); //需要放在HC595_Pin_Init()后面
TIM3_Init();
Read_Init();//读flash的值赋值给total数组
Read_Init();//读flash的值赋值给total数组以及阶段
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);
PWM1_Init(500-1,720-1);
PWM2_Init(500-1,720-1);

@ -7,6 +7,8 @@
//u8 cnt_flag=0,sub_flag=0,pub_flag=0;
//u16 time=0;//记录ping服务器的时间
u8 store_stage=1;//写入flash的阶段号断电重启后读取可以紧接着上次的阶段运行
extern PID pid;
extern float kd;
extern float ki;
@ -139,19 +141,19 @@ void Sensor_Communication_task(void *pvParameters)
{
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);//更新对应阶段号的参数
// 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");
printf("send finish\r\n");
delay_xms(1000);
//RX_BUF_Printf(128);
RX_BUF_Printf(128);
RS485_1_Send_Data_3();
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))
{
//printf("enter while\r\n");
printf("enter while\r\n");
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 = 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->加湿器 */
@ -232,13 +234,13 @@ void Sensor_Communication_task(void *pvParameters)
// GPIO_ResetBits(GPIOD,GPIO_Pin_1);//关闭风扇
humidity_flag=0;
}
//printf("!!!");
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);
RX_BUF_Printf(128);
// printf("\r\n");
}
@ -246,6 +248,7 @@ void Sensor_Communication_task(void *pvParameters)
{
Analysis(&n,&i,RS485_RX_BUF);
printf("B6 03 cmd: batch sync\r\n");
Write_Init();
RX_BUF_ZERO(11);
printf(" \r\n");
RX_BUF_Transfer(0,11);
@ -260,6 +263,8 @@ void Sensor_Communication_task(void *pvParameters)
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);
@ -271,7 +276,7 @@ void Sensor_Communication_task(void *pvParameters)
{
Batch_synchronization(&n,RS485_RX_BUF);
printf("B6 01 cmd: get one %d\r\n", n);
Write_Init();
//Write_Init();减少擦写的次数
RX_BUF_ZERO(20);
printf(" \r\n");
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("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("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)
{
@ -303,7 +308,7 @@ void Sensor_Communication_task(void *pvParameters)
//printf("bule=%d\r\n",blue);
}
RS485_RX_CNT=0;
//printf("end data to serial monitor end");
printf("end data to serial monitor end");
}

Loading…
Cancel
Save