掉电重启,读取flash中的数据
before_die
kafeijiaasamu 2 years ago
parent 9dc057ebc1
commit 518ebe2610

@ -24,7 +24,7 @@ u8 W25QXX_ReadSR(void)
u8 byte=0; u8 byte=0;
W25QXX_CS=0; //使能器件// W25QXX_CS=0; //使能器件//
SPI1_ReadWriteByte(W25X_ReadStatusReg); //发送读取状态寄存器指令W25X_ReadStatusReg=0x05可忽略接收值// SPI1_ReadWriteByte(W25X_ReadStatusReg); //发送读取状态寄存器指令W25X_ReadStatusReg=0x05可忽略接收值//
byte=SPI1_ReadWriteByte(0Xff); //读取一个字节发送0xff读取回来的值传至byte// byte=SPI1_ReadWriteByte(0xff); //读取一个字节发送0xff读取回来的值传至byte//
W25QXX_CS=1; //取消片选 W25QXX_CS=1; //取消片选
return byte; return byte;
} }

@ -48,18 +48,19 @@ void Write_Init(void)
{ {
W25QXX_Init(); W25QXX_Init();
W25QXX_Erase_Sector(0x000000); W25QXX_Erase_Sector(0x000000);
W25QXX_Write_NoCheck(total,0x000000,108);//把数据写入flash W25QXX_Write_NoCheck(total,0x000000,108);//把数据写入flash
W25QXX_Read(ArrayRead,0x000000,108);//把数据读出来
} }
void Read_Init(void) void Read_Init(void)
{ {
W25QXX_Init();
W25QXX_Read(ArrayRead,0x000000,108);//把数据读出来 W25QXX_Read(ArrayRead,0x000000,108);//把数据读出来
bufcut_Init(ArrayWrite,ArrayRead,0,109); bufcut_Init(total,ArrayRead,0,109);
for(int i=0;i<108;i++) for(int i=0;i<108;i++)
{ {
printf("%x ",ArrayRead[i]); printf("%d ",ArrayRead[i]);
} }
} }

Binary file not shown.

@ -29,7 +29,7 @@ Project File Date: 11/19/2023
Build target 'LED' Build target 'LED'
compiling main.c... compiling main.c...
linking... linking...
Program Size: Code=26144 RO-data=436 RW-data=496 ZI-data=12824 Program Size: Code=25516 RO-data=292 RW-data=496 ZI-data=12824
FromELF: creating hex file... FromELF: creating hex file...
"..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s). "..\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 D:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:03 Build Time Elapsed: 00:00:02
</pre> </pre>
</body> </body>
</html> </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 !) Dependencies for Project 'control', Target 'LED': (DO NOT MODIFY !)
CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC
F (.\main.c)(0x6566E6CC)(--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)(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)
I (..\myfreertos\myfreertos.h)(0x655DC049) I (..\myfreertos\myfreertos.h)(0x655DC049)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE) I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E) I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)
@ -195,7 +195,7 @@ I (..\STM32F10x_FWLib\inc\stm32f10x_usart.h)(0x504F415F)
I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4) I (..\STM32F10x_FWLib\inc\stm32f10x_wwdg.h)(0x4D783BB4)
I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4) I (..\STM32F10x_FWLib\inc\misc.h)(0x4D783BB4)
F (..\HARDWARE\MYSPI.h)(0x64D06463)() F (..\HARDWARE\MYSPI.h)(0x64D06463)()
F (..\HARDWARE\W25Q128.c)(0x64D48CFB)(--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\w25q128.o --omf_browse ..\obj\w25q128.crf --depend ..\obj\w25q128.d) F (..\HARDWARE\W25Q128.c)(0x656988D7)(--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\w25q128.o --omf_browse ..\obj\w25q128.crf --depend ..\obj\w25q128.d)
I (..\HARDWARE\W25Q128_Ins.h)(0x64D48CD3) I (..\HARDWARE\W25Q128_Ins.h)(0x64D48CD3)
I (..\SYSTEM\system.h)(0x64BC0671) I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5) I (..\USER\stm32f10x.h)(0x4D783CB5)
@ -266,7 +266,7 @@ I (D:\MDK5\ARM\ARMCC\include\stdio.h)(0x60252374)
I (..\SYSTEM\SysTick.h)(0x6530E176) I (..\SYSTEM\SysTick.h)(0x6530E176)
I (..\HARDWARE\Relays.h)(0x6559CD68) I (..\HARDWARE\Relays.h)(0x6559CD68)
F (..\HARDWARE\Relays.h)(0x6559CD68)() F (..\HARDWARE\Relays.h)(0x6559CD68)()
F (..\HARDWARE\write.c)(0x6566DC40)(--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)(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)
I (..\SYSTEM\system.h)(0x64BC0671) I (..\SYSTEM\system.h)(0x64BC0671)
I (..\USER\stm32f10x.h)(0x4D783CB5) I (..\USER\stm32f10x.h)(0x4D783CB5)
I (..\CORE\core_cm3.h)(0x4D523B58) 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\mpu_wrappers.h)(0x573F3A16)
I (..\FreeRTOS\include\task.h)(0x573F3A16) I (..\FreeRTOS\include\task.h)(0x573F3A16)
I (..\FreeRTOS\include\list.h)(0x573F3A16) I (..\FreeRTOS\include\list.h)(0x573F3A16)
F (..\myfreertos\myfreertos.c)(0x6566BD9E)(--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)(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)
I (..\myfreertos\myfreertos.h)(0x655DC049) I (..\myfreertos\myfreertos.h)(0x655DC049)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE) I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E) 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.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -165,22 +165,6 @@
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>0x0002FFFE</Expression> <Expression>0x0002FFFE</Expression>
</Bp> </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> </Breakpoint>
<WatchWindow1> <WatchWindow1>
<Ww> <Ww>
@ -263,7 +247,7 @@
<Group> <Group>
<GroupName>USER</GroupName> <GroupName>USER</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

@ -16,26 +16,23 @@ int main(void)
HC595_Pin_Init(); HC595_Pin_Init();
RTC_Init(); //需要放在HC595_Pin_Init()后面 RTC_Init(); //需要放在HC595_Pin_Init()后面
TIM3_Init(); TIM3_Init();
delay_ms(20000); Read_Init();//读flash的值赋值给total数组
//Write_Init(); //把数据写入W25Q128
Read_Init();
Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white); Array(&now_stage,&hour,&min,&tem,&hum,&red,&blue,&white);
Write_Init(); //把数据写入W25Q128
PWM1_Init(500-1,720-1); PWM1_Init(500-1,720-1);
PWM2_Init(500-1,720-1); PWM2_Init(500-1,720-1);
PWM3_Init(500-1,720-1); PWM3_Init(500-1,720-1);
TIM4_Init(10000-1,7200-1);//100ms计数溢出更新中断200*7200/72M=0.02s=20ms TIM4_Init(10000-1,7200-1);//100ms计数溢出更新中断200*7200/72M=0.02s=20ms
//iwdg_my_Init(5,16000); //不喂狗12s复位 // //iwdg_my_Init(5,16000); //不喂狗12s复位
//RX_BUF_Init(); // //RX_BUF_Init();
HC595_Send_Byte(0x02);//默认打开压缩机 HC595_Send_Byte(0x02);//默认打开压缩机
TIM_SetCompare4(TIM4,200); TIM_SetCompare4(TIM4,170);
delay_xms(10000);//压缩机启动时10秒内以一半的功率工作 //delay_xms(10000);//压缩机启动时10秒内以一半的额定功率工作
//红白蓝对应J10 J11 J12 //红白蓝对应J10 J11 J12
PWM_SetCompare1(0);//J10 PWM_SetCompare1(0);//J10
PWM_SetCompare2(0);//J12 PWM_SetCompare2(0);//J12
PWM_SetCompare4(0);//J11 PWM_SetCompare4(0);//J11
delay_ms(500); //delay_ms(500);
PWM_SetCompare1(30);//J10 PWM_SetCompare1(30);//J10
PWM_SetCompare2(30);//J12 PWM_SetCompare2(30);//J12
PWM_SetCompare4(30);//J11 PWM_SetCompare4(30);//J11

@ -137,21 +137,21 @@ void Sensor_Communication_task(void *pvParameters)
while(1) while(1)
{ {
Read_Init();
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 +165,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->加湿器 */
@ -192,8 +192,8 @@ void Sensor_Communication_task(void *pvParameters)
pid.now_tem=T/10.0; pid.now_tem=T/10.0;
PID_Calc(); PID_Calc();
num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的 num=(((pid.OUT*400)/pid.pwmcycle)-1);//请问这个pid.OUT与pwm占空比的值是如何换算过来的
TIM_SetCompare4(TIM4,num); //0-200对应0-100%如果pid.out=50,占空比就是25%//num=50*400/200=100100/400=25% TIM_SetCompare4(TIM4,0.845*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); //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; current_T=T;
} }
} }
@ -232,14 +232,14 @@ 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");
} }
else if(RS485_RX_BUF[0]==0xEE&&RS485_RX_BUF[1]==0xB6&&RS485_RX_BUF[2]==0x03)//单个同步 else if(RS485_RX_BUF[0]==0xEE&&RS485_RX_BUF[1]==0xB6&&RS485_RX_BUF[2]==0x03)//单个同步
@ -291,24 +291,20 @@ 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)
{ {
PWM_SetCompare1((red/100.0*3.5+28));//J9 PWM_SetCompare1((red/100.0*3.5+28));//J9
PWM_SetCompare2((blue/100.0*3.5+28));//J11 PWM_SetCompare2((blue/100.0*3.5+28));//J11
//PWM_SetCompare4((white/10));//J10 //PWM_SetCompare4((white/10));//J10
printf("red=%d\r\n",red); //printf("red=%d\r\n",red);
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");
// }
// }
} }
} }

Loading…
Cancel
Save