瀏覽代碼

调整状态定义
v7.4.0.3

yidongFan 1 月之前
父節點
當前提交
99c159e3f2

+ 23 - 16
BoardInterface/onechip_devinf_define.h

@@ -24,11 +24,12 @@ typedef enum {
 
 enum SYS_STATE_DEF
 {
-    SYS_STATE_PREPARE,
-    SYS_STATE_READY,
-    SYS_STATE_CHECK,
-    SYS_STATE_RUNING,
-    SYS_STATE_WORKEND,
+    SYS_STATE_PREPARE, /*准备中*/
+    SYS_STATE_READY,   /*就绪*/
+    SYS_STATE_PREHEAT, /*预热*/
+    SYS_STATE_CHECK,   /*待插入*/
+    SYS_STATE_RUNING,  /*运行*/
+    SYS_STATE_WORKEND,  /*结束*/
     SYS_STATE_ERROR_HM = 0xfe,//人为故障
     SYS_STATE_ERROR_HW = 0xff //设备故障
 };
@@ -76,11 +77,15 @@ typedef struct {
 	unsigned int  trigger_Tick;	
 	unsigned int  int_ADC;	
 	unsigned int  resetByIwdg;	
-	unsigned int  connectTcpFlag;		
+	unsigned int  connectTcpFlag;
+	unsigned int  connectHostFlag;		
 	unsigned int  pc_link_timeout;	
 	unsigned int  pc_channel_recv;
 	unsigned int  samp_flag;
 	unsigned int  system_OnlineFlag;
+	unsigned int  amplif_flag;
+	unsigned int  lysis_flag;
+	unsigned int  light_flag;
 	
 	void * debugUart;	
 	void * scannerUart;
@@ -111,6 +116,14 @@ typedef struct {
 	heat_ctrl_def heaterMaster;
 	heat_ctrl_def heaterSlave;
     lysis_ctr_def lysis;
+
+	uint32_t skip_CheckOrRun;		//插入光变化检测
+
+	char SN[8];
+	char wifiname[WIFI_AP_NAME_MAX_LEN];
+	char password[WIFI_AP_PWD_MAX_LEN];
+	char TCP_IP_Addr[16];
+	char TCP_IP_PORT[8];
 	float lysis_offset;
 	float lysis_overHeat;
 	float lysis_overHeatTime;
@@ -132,20 +145,14 @@ typedef struct {
 
 
 	uint32_t log_level;		//日志等级
-	uint32_t skip_CheckOrRun;		//插入光变化检测
 	float adjtemp;		//调整温度
 	float timeinner;
     float swingspeed;
     float swingtime;
-    float swingtimeRight;
-    float swingtimePause;
-    float runLoopTime;
-    float runLoopSpeed;
-	char wifiname[WIFI_AP_NAME_MAX_LEN];
-	char password[WIFI_AP_PWD_MAX_LEN];
-	char TCP_IP_Addr[16];
-	char TCP_IP_PORT[8];
-	char SN[8];
+    // float swingtimeRight;
+    // float swingtimePause;
+    // float runLoopTime;
+    // float runLoopSpeed;
 	uint32_t checksum;		//插入光变化检测
 	
 	

+ 1 - 1
BoardInterface/onechip_load_inf.h

@@ -8,7 +8,7 @@
 #define SOFT_VERSION_1  7	//软件版本号
 #define SOFT_VERSION_2  4	//软件版本号
 #define SOFT_VERSION_3  0	//软件版本号
-#define SOFT_VERSION_4  0	//软件版本号
+#define SOFT_VERSION_4  3	//软件版本号
 
 
 

+ 4 - 4
Core/Src/dma.c

@@ -45,16 +45,16 @@ void MX_DMA_Init(void)
 
   /* DMA interrupt init */
   /* DMA1_Channel1_IRQn interrupt configuration */
-  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 2, 0);
   HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
   /* DMA1_Channel4_IRQn interrupt configuration */
-  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 2, 0);
   HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
   /* DMA1_Channel5_IRQn interrupt configuration */
-  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 2, 0);
   HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
   /* DMA2_Channel3_IRQn interrupt configuration */
-  HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 0, 0);
+  HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 2, 0);
   HAL_NVIC_EnableIRQ(DMA2_Channel3_IRQn);
 
 }

+ 1 - 1
Core/Src/gpio.c

@@ -130,7 +130,7 @@ void MX_GPIO_Init(void)
   HAL_GPIO_Init(MINI7_V2_KEY_GPIO_Port, &GPIO_InitStruct);
 
   /* EXTI interrupt init*/
-  HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
+  HAL_NVIC_SetPriority(EXTI9_5_IRQn, 1, 0);
   HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
 
 }

+ 50 - 27
Core/Src/main.c

@@ -86,24 +86,28 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 					}
 					 Motor_mix_work();
 				 }
-				 if(sysinf.ms_conter%100 == 1){          
-            float temp = getADC_Chanel_value(0);
-            sysinf.heaterMaster.pid.realtemp = temp + sysinf.heaterMaster.offset;
-            heater_work(&sysinf.heaterMaster);
+				 if(sysinf.ms_conter%100 == 1){
+            sysinf.amplif_flag   = 1;   
 				 }
 				 if(sysinf.ms_conter%100 == 2){
-            lysis_work();
+            sysinf.lysis_flag   = 1;
 				 }
 				 if(sysinf.ms_conter%100 == 1){
 					 sysinf.deal_espFlag=1;
-				 }         
+				 }           
 				 if(sysinf.ms_conter%50 == 0){
-					 light_ctrl();
-
-						if(sysinf.ms_conter%(OFFLINE_TIME/2) == 0){
-							sysinf.upheart_flag = 1;
-						}
-				 }				 
+          sysinf.light_flag = 1;
+          if(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_NULL){             
+              if(sysinf.ms_conter%(OFFLINE_TIME*50/12) == 0){
+                  sysinf.upheart_flag = 1;						
+              }	 
+            }
+          else{                
+              if(sysinf.ms_conter%(OFFLINE_TIME*50/2) == 0){
+                  sysinf.upheart_flag = 1;						
+              }	 
+          }
+        }  		 
     }
 }
 /* USER CODE END 0 */
@@ -160,8 +164,8 @@ int main(void)
 	
   dev_load_allinf();
 	
-  light_set(MODE_BLINK, 250, COLOR_YELLOW, 0);
-  light_set(MODE_BLINK, 250, COLOR_YELLOW, 1);
+  light_set(MODE_BLINK, 500, COLOR_YELLOW, 0);
+  light_set(MODE_BLINK, 500, COLOR_YELLOW, 1);
   light_refresh(COLOR_YELLOW, COLOR_YELLOW);
 	con_sysinf_debugUart((void *)&huart1);
   Van_Debug_UART_Init((UART_HandleTypeDef *)sysinf.debugUart);
@@ -205,13 +209,19 @@ int main(void)
 			/* 启动失败,可在此处添加错误处理 */
 			Error_Handler();
 	}
-	// if(	SensorSelfCheck()){
-	// 	Van_Device_Printf(VAN_LOG_ALLPRINT, "SensorSelfCheck failed\n\r");
-	// }else{
-	// 	Van_Device_Printf(VAN_LOG_ALLPRINT, "SensorSelfCheck pass\n\r");
-	// }
-	
+	if(	SensorSelfCheckPass()){
+		Van_Device_Printf(VAN_LOG_ALLPRINT, "SensorSelfCheck pass\n\r");	
    sysinf.psmMaster.state = SW_Read_To_Board_Selftest;
+	}else{
+		Van_Device_Printf(VAN_LOG_ALLPRINT, "SensorSelfCheck failed\n\r");
+    error_set(ERROR_SENSOR_SELF_CHECK);
+    updateAmplifState(SYS_STATE_ERROR_HW); 
+    sysinf.psmMaster.state =  SW_SystemError;
+    sysinf.lysis.thermostat_st = THERMOSTAT_PWRON;
+    sysinf.lysis.firstin = True;
+	}
+  
+	PackDeviceNum();
 
   while (1)
   {
@@ -226,6 +236,8 @@ int main(void)
             uart0_recOK = 0;
             sysinf.pc_channel_recv  = PC_CONNECT_TYPE_UART;
             sysinf.pc_link_timeout = 0;
+            sysinf.connectHostFlag = 1;
+            
             uart0_massage.data = (char *)uart0_data;            
             deal_mUnion_cmd(&uart0_massage);
             query_pc_cmd(&uart0_massage);
@@ -260,16 +272,27 @@ int main(void)
 
 		if(	sysinf.upheart_flag == 1){
 			sysinf.upheart_flag = 0;
-      if((sysinf.pc_channel_recv  == PC_CONNECT_TYPE_NULL)||(sysinf.pc_channel_recv == PC_CONNECT_TYPE_WIFI && sysinf.pc_link_timeout > (OFFLINE_TIME/3)) ){
+      if((sysinf.pc_channel_recv  == PC_CONNECT_TYPE_NULL)||(sysinf.connectHostFlag&& sysinf.pc_link_timeout > (OFFLINE_TIME/3)) ){
 			  send_Devinf_pc();
       }	       
 		}
-		if(	sysinf.s10_flag == 1){
-			sysinf.s10_flag = 0;	      
-			if(sysinf.pc_link_timeout > OFFLINE_TIME){
-				send_Devinf_pc();
-			}
-		}
+		
+    if(sysinf.amplif_flag ){
+      sysinf.amplif_flag   = 0;       
+      float temp = getADC_Chanel_value(0);
+      sysinf.heaterMaster.pid.realtemp = temp + sysinf.heaterMaster.offset;
+      heater_work(&sysinf.heaterMaster);
+    }
+    if(sysinf.lysis_flag){
+      sysinf.lysis_flag = 0;    
+      lysis_work();
+    }
+       
+    if(sysinf.light_flag){
+    sysinf.light_flag = 0;
+      light_ctrl();
+    }		
+
     usr_state_machine(&sysinf.psmMaster,&sysinf.heaterMaster);
   }
   /* USER CODE END 3 */

+ 1 - 1
Core/Src/tim.c

@@ -268,7 +268,7 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
     __HAL_RCC_TIM2_CLK_ENABLE();
 
     /* TIM2 interrupt Init */
-    HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
+    HAL_NVIC_SetPriority(TIM2_IRQn, 1, 0);
     HAL_NVIC_EnableIRQ(TIM2_IRQn);
   /* USER CODE BEGIN TIM2_MspInit 1 */
 

+ 35 - 20
DriverInterface/ESP32_WROOM_32D.c

@@ -21,7 +21,7 @@ static int wifi_set_ssid = 0;  //WiFi应答SSID设置
 
 uint32_t unlink_time = 0;
 extern uint32_t pc_link_timeout;
-uint32_t connectTcpFlag = 0;
+
 char TCP_IP_PORT[8]  = {"8001"};
 char MAC_ADDR[20]  = {0};
 uint32_t broadDevFlag = 0;
@@ -415,7 +415,7 @@ void WIFI_recv_deal(void)
     int data_len = g_wifi_rx_last>g_wifi_rx_head?(g_wifi_rx_last-g_wifi_rx_head):(WIFI_RX_BUF_SIZE+g_wifi_rx_last-g_wifi_rx_head);
     // int udp_data_len = 0;
     char* data = (char*)g_wifi_rx_buf;
-    if(data_len < 5)
+    if((data_len < 5)&&(wifi_state != WIFI_TRANS))
         return;
 
     //判断是否接收完成
@@ -457,21 +457,25 @@ void WIFI_recv_deal(void)
 			if(WIFI_LISTEN == wifi_state){
 				/*上电需要广播地址*/			
 				broadDevFlag = 1;
-				sysinf.s10_flag = 1;	
-				if(sysinf.connectTcpFlag == 1){
-					if(wifi_tx_len){
-						char cStr [40] = {0};
-				        my_sprintf ( cStr,sizeof(cStr), "AT+CIPSEND=0,%d", wifi_tx_len );
-				        ESP32_Send_AT_Cmd ( cStr,  3000 );
-					}
-					sysinf.pc_link_timeout = 0;	
-                    sysinf.pc_channel_recv  = PC_CONNECT_TYPE_WIFI; 
-				}	
+				sysinf.s10_flag = 1;	                
+                resendtime = 0;
+                wifi_tx_len = 0;
+                memset(wifi_tx_buf, 0, sizeof(wifi_tx_buf));
+				// if(sysinf.connectTcpFlag == 1){
+				// 	if(wifi_tx_len){
+				// 		char cStr [40] = {0};
+				//         my_sprintf ( cStr,sizeof(cStr), "AT+CIPSEND=0,%d", wifi_tx_len );
+				//         ESP32_Send_AT_Cmd ( cStr,  3000 );
+				// 	}
+				// 	// sysinf.pc_link_timeout = 0;	
+                //     // sysinf.pc_channel_recv  = PC_CONNECT_TYPE_WIFI; 
+				// }	
+                // wifi_receive_clear();
 			}
 			wifi_state++;
 			resendtime = 0;            
             HAL_Delay(1000);			
-            // wifi_receive_clear();	
+            // 	
 		}
         break;
     case WIFI_CWLAP:{
@@ -526,7 +530,6 @@ void WIFI_recv_deal(void)
         	//收到AT+CIPSEND回应,可发送数据
 		    Van_Device_Printf(VAN_LOG_WIFI,"\n--> SEND OK", wifi_tx_len); 
             wifi_ack_delay = 0;//从发送写指令,到此才算发送完成
-            wifi_tx_len = 0;
 			resendtime = 0;
             wifi_tx_len = 0;
 			memset(wifi_tx_buf, 0, sizeof(wifi_tx_buf));
@@ -534,11 +537,18 @@ void WIFI_recv_deal(void)
 		}
 		 else if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "OK\r\n"))
 		{
-            //  wifi_receive_clear();
+             wifi_receive_clear();
 		    Van_Device_Printf(VAN_LOG_WIFI,"\n--> OK W %d", wifi_tx_len); 
 			WriteComm2((char *)wifi_tx_buf, wifi_tx_len+1);
             wifi_ack_delay = 3000;
 		}
+		 else if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, ">"))
+		{
+             wifi_receive_clear();
+		    Van_Device_Printf(VAN_LOG_WIFI,"\n--> > W %d", wifi_tx_len); 
+			WriteComm2((char *)wifi_tx_buf, wifi_tx_len+1);
+            wifi_ack_delay = 3000;
+		}
 
 		if(NULL != find_str_loop(g_wifi_rx_buf, WIFI_RX_BUF_SIZE ,&g_wifi_rx_head, g_wifi_rx_last, "DISCONNECT"))
 		{
@@ -553,10 +563,12 @@ void WIFI_recv_deal(void)
 		{
             int iProcLen = DecodeNew(&uart0_massage,uart0_data,g_wifi_rx_buf, &g_wifi_rx_head,g_wifi_rx_last,WIFI_RX_BUF_SIZE);
             if (iProcLen > 0)   {                        
-                sysinf.pc_channel_recv  = PC_CONNECT_TYPE_WIFI;            
+                sysinf.pc_channel_recv  = PC_CONNECT_TYPE_WIFI;                                 
+                sysinf.connectHostFlag = 1;           
                 sysinf.pc_link_timeout = 0;
 								uart0_massage.data = (char *)uart0_data;    
                 query_pc_cmd(&uart0_massage);
+                wifi_receive_clear();
             }    
             //  wifi_receive_clear();
  //           set_pc_chanel_recv(1);
@@ -575,8 +587,10 @@ void WIFI_recv_deal(void)
     default:
         break;
     }
-
-	wifi_receive_clear();
+    if(WIFI_TRANS != wifi_state){
+        wifi_receive_clear();
+    }
+	
 }
 
 
@@ -681,7 +695,7 @@ void WIFI_send_deal(void)
 		if(sysinf.connectTcpFlag){
 			if(resendtime < MAX_RESEND_TIME)
 	        { 	
-	        	ESP32_Link_Server(enumTCP,sysinf.TCP_IP_Addr, TCP_IP_PORT, Multiple_ID_0);
+	        	ESP32_Link_Server(enumTCP,sysinf.TCP_IP_Addr, sysinf.TCP_IP_PORT, Multiple_ID_0);
 			}else{			
 				/*多次TCP未链接,链接UDP*/
 //            	connectTcpFlag = 0;
@@ -700,7 +714,8 @@ void WIFI_send_deal(void)
 			if(resendtime < MAX_RESEND_TIME)
 	        { 	
 	        	if(wifi_tx_len){
-					char cStr [40] = {0};
+					char cStr [40] = {0};                    
+                    Van_Device_Printf(VAN_LOG_WIFI,"\nbuflen:%d %d %s",g_wifi_rx_head,g_wifi_rx_last, g_wifi_rx_buf);  
 					my_sprintf ( cStr,sizeof(cStr),"AT+CIPSEND=0,%d", wifi_tx_len );
 					ESP32_Send_AT_Cmd ( cStr,  3000 );
 				}			

+ 61 - 27
DriverInterface/communication.c

@@ -48,14 +48,24 @@ int data_send_to_pc(pc_cmd_type cmd, char *data, unsigned short len)
 		 Van_Device_Printf(VAN_LOG_COMM,"send_to_pc :%x  len:%d error ", cmd, len);
 		 return  ret;
 	}
-	if(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_NULL  && cmd != PC_CMD_SETIP){
-				/*无链接情况,只考虑*/
-				return ret;
-	}			
-	if((sysinf.pc_channel_recv  == PC_CONNECT_TYPE_WIFI  && PC_CMD_DATASCOPE == cmd)|| /*网口不上报数据*/
-		(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_UART  && PC_CMD_SETIP == cmd))     /*串口不广播UDP*/{
-		return  ret;
-	}	
+    if(cmd == PC_CMD_SETIP){
+        if(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_UART){
+              /*串口不上报 IP配置信息*/
+            return  ret;
+        }
+    }else{
+        
+        if(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_NULL ){            
+            /*无通信,不上报*/
+            return ret;
+        }
+        if(sysinf.pc_channel_recv  == PC_CONNECT_TYPE_WIFI ){
+            if((sysinf.connectTcpFlag == 0) || (PC_CMD_DATASCOPE == cmd))
+            /*网口不上报数据 ,TCP链接未完成*/
+            return ret;
+        }
+    }
+   
     switch(cmd)
     {
         case PC_CMD_QRCODE:
@@ -226,8 +236,8 @@ int wifi_action(unsigned char cmd, unsigned char *parg)
     strcpy(sysinf.wifiname, (const char *)parg);
 	strcpy(sysinf.password, (const char *)(parg + WIFI_AP_NAME_MAX_LEN));
     // wifi用户名和密码设置
-    WIFI_set_ssid();
-    return 1;
+    WIFI_set_ssid();    
+	return cfg_save_cfg_param();
 }
 int setState_action(unsigned char cmd, unsigned char *parg)
 {
@@ -244,7 +254,17 @@ int setState_action(unsigned char cmd, unsigned char *parg)
     return 1;
 }
 
+int setLog_action(unsigned char cmd, unsigned char *parg)
+{
+    sysinf.log_level =  *(float *)(parg+4);
+    return 1;
+}
 
+int setDebug_action(unsigned char cmd, unsigned char *parg)
+{
+	sysinf.skip_CheckOrRun =  *(float *)(parg+4);
+    return 1;
+}
 
 /********************************************************************
  * int wifi_action(unsigned char cmd, unsigned char *parg)
@@ -261,7 +281,7 @@ int SN_action(unsigned char cmd, unsigned char *parg)
     
 	parg[15] = 0;
 	strcpy((char *)sysinf.SN, (const char *)parg);	
-	// PackDeviceNum();
+	PackDeviceNum();
 	return cfg_save_cfg_param();
 }
 
@@ -654,18 +674,18 @@ const struct PCActionPack mPCActionPack[] =
             .datalen = 0xff,
         },
 
-        // {
-        //     .cmd = PC_CMD_UPDATEINFO,
-        //     .action = updateInfo_action,
-        //     .response = set_response,
-        //     .datalen = 0xff,
-        // },
-        // {
-        //     .cmd = PC_CMD_UPDATEDATA,
-        //     .action = updateDate_action,
-        //     .response = updateDate_response,
-        //     .datalen = 0xff,
-        // },
+        {
+            .cmd = UINON_CMD_SET_DEBUG,
+            .action = setDebug_action,
+            .response = default_pc_response,
+            .datalen = 0xff,
+        },
+        {
+            .cmd = UINON_CMD_SET_LOG,
+            .action = setLog_action, 
+            .response = default_pc_response,
+            .datalen = 0xff,
+        },
         
 
 };
@@ -741,20 +761,30 @@ int con_heat_action(uint8_t cmd, uint8_t *parg )
 			sysinf.timeinner =  *(float *)(pMsg->data+4) * 100;
 			sysinf.swingspeed =  *(float *)(pMsg->data+8);
 			sysinf.swingtime =  *(float *)(pMsg->data+12) * 100;
-			sysinf.swingtimeRight =  *(float *)(pMsg->data+16) * 100;
-			sysinf.swingtimePause =  *(float *)(pMsg->data+20) * 100;	
+			// sysinf.swingtimeRight =  *(float *)(pMsg->data+16) * 100;
+			// sysinf.swingtimePause =  *(float *)(pMsg->data+20) * 100;	
 			if((1 == *(int *)(pMsg->data+pMsg->len - 4))){
 				cfg_save_cfg_param();	
 				Motor_Init();
 			}else{				
-				Motor_mix(sysinf.timeinner,sysinf.swingspeed,sysinf.swingtime,sysinf.swingtimeRight,sysinf.swingtimePause);
+				Motor_mix(sysinf.timeinner,sysinf.swingspeed,sysinf.swingtime,0,0);
 			}		
 		    data_send_to_pc((pc_cmd_type)pMsg->cmd, pMsg->data,  pMsg->len);
         }break;			
         case UINON_CMD_MOTORTRETURN:{		
             Motor_reset();
             data_send_to_pc( (pc_cmd_type)pMsg->cmd, pMsg->data,	pMsg->len);
-        }break;			
+        }break;				
+        case UINON_CMD_MOTORGETPRAM:{  
+            char data[24];            
+            *(float *)(data+0) = 0;
+			*(float *)(data+4) = sysinf.timeinner/100;
+			*(float *)(data+8) = sysinf.swingspeed;
+			*(float *)(data+12) = sysinf.swingtime /100;		
+            pMsg->data = data;
+            pMsg->len = sizeof(data);
+            data_send_to_pc( (pc_cmd_type)pMsg->cmd, pMsg->data,	pMsg->len);
+        }break;				
         case UINON_CMD_THEROM_GET:{		
             char data[40];
             *(float *)(data+0) = 0;
@@ -839,6 +869,10 @@ const struct PCActionPack mUnionActionPack[] =
             .cmd = UINON_CMD_MOTORTRETURN,
             .action = con_heat_action,
         },
+        {
+            .cmd = UINON_CMD_MOTORGETPRAM,
+            .action = con_heat_action,
+        },
         {
             .cmd = UINON_CMD_TEMP_ADJ,
             .action = con_heat_action,

+ 2 - 0
DriverInterface/communication.h

@@ -50,6 +50,8 @@ typedef  enum
 	UINON_CMD_MOTORTRETURN = 0x49,
 	UINON_CMD_MOTORSTOP = 0x4a,
 	UINON_CMD_MOTORGETPRAM = 0x4b,
+	UINON_CMD_SET_DEBUG = 0x4c,
+	UINON_CMD_SET_LOG = 0x4d,
 	UINON_CMD_TEMP_DEBUG = 0x50,
 	UINON_CMD_THEROM_GOAL = 0x51,
 	UINON_CMD_THEROM_CHECK = 0x52,

+ 11 - 11
DriverInterface/onchip_flash.c

@@ -208,10 +208,10 @@ void cfg_load_default_param(void)
 	sysinf.timeinner = 6000;
 	sysinf.swingtime = 100;
 	sysinf.swingspeed = 60;	
-	sysinf.swingtimeRight = 40;
-	sysinf.swingtimePause = 100;
-	sysinf.runLoopTime = 600;
-	sysinf.runLoopSpeed = 80;
+	// sysinf.swingtimeRight = 40;
+	// sysinf.swingtimePause = 100;
+	// sysinf.runLoopTime = 600;
+	// sysinf.runLoopSpeed = 80;
 	strcpy(sysinf.wifiname, onechip_name);
 	strcpy(sysinf.password, onechip_pswd);
 	strcpy(sysinf.TCP_IP_Addr, onechip_IP);
@@ -233,12 +233,12 @@ void cfg_load_default_param(void)
 uint8_t cfg_param_verify(void)
 {
 	
-    unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, lysis_offset);
+    unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, SN);
     uint32_t saveCrc = *(uint32_t *)(CFG_PARAM_START_ADDR + (pramlen-4));
     uint32_t calCrc = checksum_calc((uint8_t *)CFG_PARAM_START_ADDR, (pramlen-4));
 
 	if((saveCrc == calCrc) && (saveCrc != 0xffffffff))	{
-		Flash_ReadBuffer(CFG_PARAM_START_ADDR,(uint8_t *)&sysinf.lysis_offset, pramlen);
+		Flash_ReadBuffer(CFG_PARAM_START_ADDR,(uint8_t *)&sysinf.SN, pramlen);
 	}
 }
 
@@ -254,10 +254,10 @@ uint8_t cfg_param_verify(void)
 ********************************************************************/
 uint8_t cfg_save_cfg_param(void)
 {
-    unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, lysis_offset);
+    unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, SN);
 
-	sysinf.checksum = (uint32_t)checksum_calc((uint8_t *)&sysinf.lysis_offset, (pramlen-4));
-    Flash_WriteBuffer(CFG_PARAM_START_ADDR, (uint8_t *)&sysinf.lysis_offset, pramlen);
+	sysinf.checksum = (uint32_t)checksum_calc((uint8_t *)&sysinf.SN, (pramlen-4));
+    Flash_WriteBuffer(CFG_PARAM_START_ADDR, (uint8_t *)&sysinf.SN, pramlen);
 	return cfg_param_verify();
 }
 
@@ -275,13 +275,13 @@ uint8_t cfg_param_init(void)
 {
 	uint8_t rlt = 0;
 
- 	unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, lysis_offset);
+ 	unsigned char pramlen = sizeof(oneChipSysdef) - offsetof(oneChipSysdef, SN);
     uint32_t saveCrc = *(uint32_t *)(CFG_PARAM_START_ADDR + (pramlen-4));
     uint32_t calCrc = checksum_calc((uint8_t *)CFG_PARAM_START_ADDR, (pramlen-4));
 
 	if((saveCrc == calCrc) && (saveCrc != 0xffffffff))
 	{
-		Flash_ReadBuffer(CFG_PARAM_START_ADDR,(uint8_t *)&sysinf.lysis_offset,  pramlen);
+		Flash_ReadBuffer(CFG_PARAM_START_ADDR,(uint8_t *)&sysinf.SN,  pramlen);
 		return 0;
 	}
 	else

+ 3 - 3
DriverInterface/rgb381.c

@@ -248,7 +248,7 @@ uint8_t SensorInit(ColorSensor *CS)
 		return 1;
 }
 
-int SensorSelfCheck(void)
+int SensorSelfCheckPass(void)
 {
 	SensorState1=SensorInit(&CS[0]);
 	SensorState2=SensorInit(&CS[1]);
@@ -262,8 +262,8 @@ int SensorSelfCheck(void)
 	SensorState10=SensorInit(&CS[9]);
 
     if(SensorState1|SensorState2|SensorState3|SensorState4|SensorState5|SensorState6|SensorState7|SensorState8|SensorState9|SensorState10)
-    	 return -1;
-    else return 0;
+    	 return 0;
+    else return 1;
 }
 
 void SensorGetCalData(ColorSensor *CS)

+ 1 - 1
DriverInterface/rgb381.h

@@ -118,7 +118,7 @@ void SensorCalculatedCalibrationFactor(ColorSensor *CS);
 void RGBtoHSV(ColorSensor *CS);
 void SensorEnable(void);
 uint8_t SensorInit(ColorSensor *CS);
-int SensorSelfCheck(void);
+int SensorSelfCheckPass(void);
 void SensorRGBInit(ColorSensor *CS);
 void SensorGetCalData(ColorSensor *CS);
 void sample_first_zero(void);

+ 90 - 9
DriverInterface/state_mini.c

@@ -18,6 +18,81 @@ uint32_t error_delay = 0;    //错误持续时长
 // test_result_struct result = {0};
 heat_ctrl_struct g_heat_ctrl = {0};
 
+
+float get_avg(float value[10])
+{
+	float sum = 0;
+
+	for(int i = 0; i < 10; i++)
+	{
+		sum += value[i];
+	}
+	
+	sum /= 10;
+
+	return sum;
+}
+float get_std_avg(float value[10])
+{
+	float sum = 0;
+	float avg = 0;
+
+	avg = get_avg(value);
+
+	for(int i = 0; i < 10; i++)
+	{
+		sum += (value[i] - avg) * (value[i] - avg);
+	}
+
+	sum = sqrtf(sum / 9) / avg;
+
+	return sum;
+}
+
+float get_max_min(float value[10])
+{
+	float max = 0;
+	float min = 99999;
+
+	for(int i = 0; i < 10; i++)
+	{
+		if(value[i] > max)
+			max = value[i];
+		
+		if(value[i] < min)
+			min = value[i];
+	}
+	
+	return (max - min);
+}
+void DatascopeSend(float value1,float value2, float value3, float value4, float value5,
+					float value6,float value7,float value8,float value9,float value10,float value11)//date_scope 10ch driver
+{
+     uint16_t check;
+     CmdMessage msg;
+	float temp;
+	uint8_t DataScopeOutPutBuffer[40]; // Serial port send buffer
+
+	*(uint32_t*)&DataScopeOutPutBuffer[0] = *(uint32_t*)&value1;
+	*(uint32_t*)&DataScopeOutPutBuffer[4] = *(uint32_t*)&value2;
+	*(uint32_t*)&DataScopeOutPutBuffer[8] = *(uint32_t*)&value3;
+	*(uint32_t*)&DataScopeOutPutBuffer[12] = *(uint32_t*)&value4;
+	*(uint32_t*)&DataScopeOutPutBuffer[16] = *(uint32_t*)&value5;
+	*(uint32_t*)&DataScopeOutPutBuffer[20] = *(uint32_t*)&value6;
+	*(uint32_t*)&DataScopeOutPutBuffer[24] = *(uint32_t*)&value7;
+	*(uint32_t*)&DataScopeOutPutBuffer[28] = *(uint32_t*)&value8;
+	*(uint32_t*)&DataScopeOutPutBuffer[32] = *(uint32_t*)&value9;
+	*(uint32_t*)&DataScopeOutPutBuffer[36] = *(uint32_t*)&value10;
+	*(uint32_t*)&DataScopeOutPutBuffer[40] = *(uint32_t*)&value11;	//时间
+
+	temp = get_max_min((float*)DataScopeOutPutBuffer);
+	*(uint32_t*)&DataScopeOutPutBuffer[44] = *(uint32_t*)&temp;	//极差
+	temp = get_std_avg((float*)DataScopeOutPutBuffer);
+	*(uint32_t*)&DataScopeOutPutBuffer[48] = *(uint32_t*)&temp;	//离散系数
+
+	data_send_to_pc(PC_CMD_DATASCOPE,DataScopeOutPutBuffer,sizeof(DataScopeOutPutBuffer));
+}
+
 int TrigStateCheck(void)
 {
 	 return (HAL_GPIO_ReadPin(MINI7_V2_DEC_S1_GPIO_Port,MINI7_V2_DEC_S1_Pin)) ? 1 : 0; // 
@@ -141,11 +216,11 @@ uint8_t error_set(uint8_t error)
     error_info.error_report = 1;
     data_send_to_pc(PC_CMD_REPORT_REEOR, (char*)&error_info, sizeof(str_error_info_t));
     
-   if(error != ERROR_MOTOR_FIALED){
-	   sysinf.psmMaster.state = SW_Fault;
-	//    mcu_ack_ctrl.re_send_card = ACK_TIMEOUT;
-	//    Card_State_Send(HEAT_OFF);			  //降温至40°C,不开风扇
-   }  
+//    if(error != ERROR_MOTOR_FIALED){
+// 	   sysinf.psmMaster.state = SW_Fault;
+// 	//    mcu_ack_ctrl.re_send_card = ACK_TIMEOUT;
+// 	//    Card_State_Send(HEAT_OFF);			  //降温至40°C,不开风扇
+//    }  
 
     return 0;
 }
@@ -184,12 +259,18 @@ void re_send_state(void){
 void updateAmplifState(uint8_t newset){
     if(sysinf.amplifState != newset){
         sysinf.amplifState = newset;
+        if(newset == SYS_STATE_ERROR_HW){
+            sysinf.lysisState = newset;
+        }
         sysinf.updateSt = 1;
     }
 }
 void updateLysisState(uint8_t newset){
     if(sysinf.lysisState != newset){
         sysinf.lysisState = newset;
+        if(newset == SYS_STATE_ERROR_HW){
+            sysinf.amplifState = newset;
+        }
         sysinf.updateSt = 1;
     }
 
@@ -262,7 +343,7 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
             sts->controlword = Target_reached_cmd;
              updateAmplifState(SYS_STATE_READY); 
         	/*************lxx-add-20232.11.30****************/
-            if (SensorSelfCheck() == SystemError)
+            if (SensorSelfCheckPass()==0)
         	{
                 error_set(ERROR_SENSOR_SELF_CHECK);
         	}
@@ -271,11 +352,11 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
         {
            /*跳过温度判断*/
             sts->controlword = Target_reached_cmd;
-            if (SensorSelfCheck() == SystemError)
+            if (SensorSelfCheckPass()==0)
         	{
                 error_set(ERROR_SENSOR_SELF_CHECK);
         	}
-			// Card_State_Send(HEAT_STOP);
+
         }
 
         if (is_command(sts->controlword, Target_reached_cmd))
@@ -363,7 +444,7 @@ void usr_state_machine(ProcessStateMachine_t *sts, heat_ctrl_def *heater)
 			{
 				sample_calibrate_calc(sts->sampleTimes);     //采样,前18组计算均值
                 //输出原始数据
-                // DatascopeSend(CS[0].RDR,CS[1].RDR,CS[2].RDR,CS[3].RDR,CS[4].RDR,CS[5].RDR,CS[6].RDR,CS[7].RDR,CS[8].RDR,CS[9].RDR, g_card_tick_s/60.0f);
+                DatascopeSend(CS[0].RDR,CS[1].RDR,CS[2].RDR,CS[3].RDR,CS[4].RDR,CS[5].RDR,CS[6].RDR,CS[7].RDR,CS[8].RDR,CS[9].RDR,(sysinf.ms_conter/1000.0));
 			}
 
 

+ 2 - 4
DriverInterface/state_mini.h

@@ -17,10 +17,8 @@
 #define SKIP_CHECK_CARDINSERT (1 << 0)  //开始检测插卡正确
 #define SKIP_CHECK_CARDREMOVE (1 << 1) //运行过程中检测插卡拔卡
 #define SKIP_HEATONCHECK_OK   (1 << 2) //跳过加热,不管加热状态
-#define SKIP_SAMPLIGHT_ACC   (1 << 3)  //上报加速
-#define SKIP_SCANQRCODE    (1 << 4)  //上报加速
-#define SKIP_FARSTRUN    (1 << 5)  //上报加速
-#define SKIP_SLAVEDATASCOP    (1 << 6)  //从模块datascop上报
+#define SKIP_SCANQRCODE    (1 << 3)  //不扫码进入进入检测
+#define SKIP_FARSTRUN   (1 << 4)  //上报加速
 
 
 #define HEAT_OFF 0x00    //关加热

+ 9 - 11
DriverInterface/usr_lysis.c

@@ -187,7 +187,11 @@ uint32_t lysis_work(void) {
   static uint32_t last10ms;
   lysis_ctr_def *ptherm = &sysinf.lysis;
 
-  temp = getADC_Chanel_value(1);
+  temp = getADC_Chanel_value(1);  
+  if(temp < MIN_TEMPERATUARE || temp > MAX_TEMPERATUARE){
+	error_set(ERROR_TEMPSENSOR_EER);
+	ptherm->thermostat_st = THERMOSTAT_ERROR;
+  }
   ptherm->pid.realtemp = temp + ptherm->offset;
   switch(ptherm->thermostat_st){
 	case THERMOSTAT_PWRON:{
@@ -197,15 +201,8 @@ uint32_t lysis_work(void) {
 			ptherm->firstin = false;
 			updateLysisState(SYS_STATE_PREPARE);sysinf.lysisState = SYS_STATE_PREPARE; 
 			firstTemp = getADC_Chanel_value(1);
-			if(firstTemp < MIN_TEMPERATUARE || firstTemp > MAX_TEMPERATUARE){
-			 	error_set(ERROR_TEMPSENSOR_EER);
-				ptherm->thermostat_st = THERMOSTAT_ERROR;
-				ptherm->firstin = true;	
-			 }else{
-				 set_lysis(firstTemp+30);
-				 last10ms = conter10ms;
-			 }  
-			
+			set_lysis(firstTemp+30);
+			last10ms = conter10ms;				
 		}else{
 			float heattemp = getADC_Chanel_value(1); 
 			if((heattemp - firstTemp) > HEAT_WORK_THD){
@@ -274,7 +271,8 @@ uint32_t lysis_work(void) {
 		}else{	
 		    if(ptherm->recGoalFlag){
 				set_lysis(ptherm->pid.goal);	
-				ptherm->recGoalFlag = 0;
+				ptherm->recGoalFlag = 0;	
+				updateLysisState(SYS_STATE_PREPARE);
 			}
 			if(ptherm->pid_stable){
 				ptherm->thermostat_st = THERMOSTAT_INSERT;

+ 9 - 8
DriverInterface/usr_motor.c

@@ -362,11 +362,11 @@ void Motor_Init()
   key_ctrl.last_level = 1;
   timeinner = sysinf.timeinner;
   swingspeed = sysinf.swingspeed;
-	swingtime =sysinf.swingtime;
-	swingtimeRight =sysinf.swingtimeRight;
-	swingtimePause =sysinf.swingtimePause;
-	runLoopTime = sysinf.runLoopTime;
-	runLoopSpeed =sysinf.runLoopSpeed;
+  swingtime =sysinf.swingtime;
+	// swingtimeRight =sysinf.swingtimeRight;
+	// swingtimePause =sysinf.swingtimePause;
+	// runLoopTime = sysinf.runLoopTime;
+	// runLoopSpeed =sysinf.runLoopSpeed;
 }
 
 /**
@@ -384,8 +384,8 @@ uint32_t Motor_mix(uint32_t time, uint32_t speed, uint32_t swing,
   timeinner = time;
   swingtime = swing;
   swingspeed = speed;
-  swingtimeRight = timeRight;
-  swingtimePause = timePause;
+//   swingtimeRight = timeRight;
+//   swingtimePause = timePause;
 //  timeinner = time - time % (swing + timeRight);
 //  curtimeinner = timeinner;
   if (speed == 0) {    
@@ -508,7 +508,8 @@ uint32_t Motor_mix_work(void) {
   		/*电机不动,返回报错*/
   		SetMotorPwm(MOTOR_REV, 0);
   		sw_st = SWING_ERR;
-		error_set(ERROR_MOTOR_FIALED);
+		error_set(ERROR_MOTOR_FIALED);		
+        updateAmplifState(SYS_STATE_ERROR_HW);
   		return 1;
   	  }
     } 

+ 12 - 2
DriverInterface/ws2812.c

@@ -21,6 +21,7 @@ static void ws2812_0()
 	GPIO_TypeDef *GPIOx = (GPIO_TypeDef *)sysinf.rgb_band_port; 
 	uint32_t GPIO_Pin_RESET = sysinf.rgb_band_pin << 16;
 	uint32_t GPIO_Pin_SET = sysinf.rgb_band_pin;
+    __disable_irq();
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_SET;
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_SET;
 	
@@ -28,6 +29,7 @@ static void ws2812_0()
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_RESET;
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_RESET;
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_RESET;
+    __enable_irq();
 
 }
 
@@ -44,6 +46,7 @@ static void ws2812_1()
   	GPIO_TypeDef *GPIOx = (GPIO_TypeDef *)sysinf.rgb_band_port; 
 	uint32_t GPIO_Pin_RESET = sysinf.rgb_band_pin << 16;
 	uint32_t GPIO_Pin_SET = sysinf.rgb_band_pin;
+    __disable_irq();
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_SET;
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_SET;
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_SET;
@@ -56,6 +59,7 @@ static void ws2812_1()
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_RESET;  
   
 	GPIOx->BSRR = (uint32_t)GPIO_Pin_RESET;
+    __enable_irq();
 }
 
 /********************************************************************
@@ -68,6 +72,7 @@ static void ws2812_1()
  ********************************************************************/
 void ws2812_set_rgb(uint32_t rgb)
 {
+
     for(int i = 0; i < 24; i++)
     {
         if(rgb & 0x800000)
@@ -131,8 +136,11 @@ void light_update(void){
     if(sysinf.amplifState == SYS_STATE_ERROR_HM){
         light_set(MODE_BLINK,500, COLOR_RED,0);	//
     }else if(sysinf.amplifState == SYS_STATE_ERROR_HW){
-        light_set(MODE_NORMAL,1000, COLOR_RED,0);	//
+        light_set(MODE_NORMAL,1000, COLOR_RED,0);	//仪器故障,双边同步
+        light_set(MODE_NORMAL,1000, COLOR_RED,1);	//
+        return ;
     } else   if(sysinf.pc_link_timeout == OFFLINE_TIME){
+        sysinf.connectHostFlag = 0;
         light_set(MODE_BLINK,1000, COLOR_YELLOW,0);	//
         light_set(MODE_BLINK,1000, COLOR_YELLOW,1);	//
         sysinf.pc_channel_recv  = PC_CONNECT_TYPE_NULL;
@@ -161,10 +169,12 @@ void light_update(void){
     if(sysinf.lysisState == SYS_STATE_ERROR_HM){
         light_set(MODE_BLINK,500, COLOR_RED,1);	//离线,黄色1S闪烁
     }else if(sysinf.lysisState == SYS_STATE_ERROR_HW){
-        light_set(MODE_NORMAL,1000, COLOR_RED,1);	//离线,黄色1S闪烁
+        light_set(MODE_NORMAL,1000, COLOR_RED,0);	//仪器故障,双边同步
+        light_set(MODE_NORMAL,1000, COLOR_RED,1);	//
     }   else if(sysinf.pc_link_timeout < OFFLINE_TIME){
         switch (sysinf.lysisState){
             case SYS_STATE_PREPARE:
+            case SYS_STATE_PREHEAT:            
                 light_set(MODE_NORMAL,1000, COLOR_YELLOW,1);
             break;
             case SYS_STATE_READY:

文件差異過大導致無法顯示
+ 5 - 6
MDK-ARM/mini7_V2.uvguix.Administrator


+ 32 - 11
MDK-ARM/mini7_V2.uvoptx

@@ -152,34 +152,50 @@
         <Bp>
           <Number>0</Number>
           <Type>0</Type>
-          <LineNumber>515</LineNumber>
+          <LineNumber>216</LineNumber>
           <EnabledFlag>1</EnabledFlag>
-          <Address>134251688</Address>
+          <Address>134333064</Address>
           <ByteObject>0</ByteObject>
           <HtxType>0</HtxType>
           <ManyObjects>0</ManyObjects>
           <SizeOfObject>0</SizeOfObject>
           <BreakByAccess>0</BreakByAccess>
           <BreakIfRCount>1</BreakIfRCount>
-          <Filename>..\DriverInterface\ESP32_WROOM_32D.c</Filename>
+          <Filename>../Core/Src/main.c</Filename>
           <ExecCommand></ExecCommand>
-          <Expression>\\mini7_V2\../DriverInterface/ESP32_WROOM_32D.c\515</Expression>
+          <Expression>\\mini7_V2\../Core/Src/main.c\216</Expression>
         </Bp>
         <Bp>
           <Number>1</Number>
           <Type>0</Type>
-          <LineNumber>194</LineNumber>
+          <LineNumber>261</LineNumber>
           <EnabledFlag>1</EnabledFlag>
-          <Address>134262718</Address>
+          <Address>134339762</Address>
           <ByteObject>0</ByteObject>
           <HtxType>0</HtxType>
           <ManyObjects>0</ManyObjects>
           <SizeOfObject>0</SizeOfObject>
           <BreakByAccess>0</BreakByAccess>
           <BreakIfRCount>1</BreakIfRCount>
-          <Filename>..\DriverInterface\communication.c</Filename>
+          <Filename>..\DriverInterface\state_mini.c</Filename>
           <ExecCommand></ExecCommand>
-          <Expression>\\mini7_V2\../DriverInterface/communication.c\194</Expression>
+          <Expression>\\mini7_V2\../DriverInterface/state_mini.c\261</Expression>
+        </Bp>
+        <Bp>
+          <Number>2</Number>
+          <Type>0</Type>
+          <LineNumber>227</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>134332118</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>1</BreakIfRCount>
+          <Filename>..\DriverInterface\usr_lysis.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression>\\mini7_V2\../DriverInterface/usr_lysis.c\227</Expression>
         </Bp>
       </Breakpoint>
       <WatchWindow1>
@@ -196,7 +212,7 @@
         <Ww>
           <count>2</count>
           <WinNumber>1</WinNumber>
-          <ItemText>wifi_state</ItemText>
+          <ItemText>g_wifi_rx_last</ItemText>
         </Ww>
         <Ww>
           <count>3</count>
@@ -216,19 +232,24 @@
         <Ww>
           <count>6</count>
           <WinNumber>1</WinNumber>
-          <ItemText>g_uart2_rx_buf</ItemText>
+          <ItemText>ADC1_Converted_Value</ItemText>
         </Ww>
         <Ww>
           <count>7</count>
           <WinNumber>1</WinNumber>
           <ItemText>sysinf</ItemText>
         </Ww>
+        <Ww>
+          <count>8</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>DeviceNum</ItemText>
+        </Ww>
       </WatchWindow1>
       <MemoryWindow1>
         <Mm>
           <WinNumber>1</WinNumber>
           <SubType>0</SubType>
-          <ItemText>0x0802ffc0</ItemText>
+          <ItemText>0x0807f800</ItemText>
           <AccSizeX>0</AccSizeX>
         </Mm>
       </MemoryWindow1>

+ 1 - 1
MDK-ARM/mini7_V2.uvprojx

@@ -336,7 +336,7 @@
             <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xE,ONECHIP_MINI_PLUS</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xE,ONECHIP_MINI_ONE</Define>
               <Undefine></Undefine>
               <IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;../BoardInterface;../DriverInterface;../tshell</IncludePath>
             </VariousControls>

部分文件因文件數量過多而無法顯示