Explorar el Código

update doc and macro definitions and Modbus receive code

terry hace 2 años
padre
commit
ed63ffb0be

+ 18 - 22
Core/Inc/main.h

@@ -48,30 +48,24 @@ extern "C" {
 /* Exported macro ------------------------------------------------------------*/
 /* USER CODE BEGIN EM */
 #define Rx_Max 1024  	
-#define Version_sys 0x23051700  	
-extern uint8_t receive_buffer[30];  // 定义接收缓存,这里假设最多可以接收100个字节
-extern uint8_t flag ;
+#define Version_sys 0x23060500  	
+
 extern uint16_t Adc2_CalibrationValue ;
 extern uint16_t Adc3_CalibrationValue ;
-extern uint8_t gpioaStatus ;
-extern uint8_t gpiobStatus ; 
-extern uint8_t		Rx_Flag;
-extern uint16_t		Rx_Len;
-extern uint8_t		Rx_Buf[Rx_Max];
+extern uint8_t  gpioaStatus ;
+extern uint8_t  gpiobStatus ; 
+extern uint8_t	Rx_Flag;
+extern uint16_t	Rx_Len;
+extern uint8_t	Rx_Buf[Rx_Max];
 /* USER CODE END EM */
 
 /* Exported functions prototypes ---------------------------------------------*/
 void Error_Handler(void);
 
 /* USER CODE BEGIN EFP */
-uint16_t read_flash_16(uint32_t flash_address);
-void read_new_address_from_flash(uint32_t flash_address);
-void erase_flash(uint32_t ADDR_FLASH);
-void write_flash_address(uint8_t* rx_buffer);
-void write_flash_PbStatus(uint8_t* rx_buffer);
-void write_flash_autoAdc(uint32_t ADDR_FLASH);
-void CoverADC(uint32_t ADDR);
-void write_flash_Baudrate(uint8_t* rx_buffer);
+uint16_t read_flash_16(uint32_t addr);
+void read_new_address(uint32_t addr);
+void Write_Information(uint32_t addr, uint8_t* rx_buffer, uint8_t buffer_index);
 /* USER CODE END EFP */
 
 /* Private defines -----------------------------------------------------------*/
@@ -80,12 +74,14 @@ void write_flash_Baudrate(uint8_t* rx_buffer);
 #define FILTER_LENGTH 10
 #define DEBOUNCE_COUNT 10
 #define Modbus 1
-#define ADDR_FLASH_PAGE_61   ((uint32_t)0x0800A000)  // Flash扇区61的起始地址      address
-#define ADDR_FLASH_PAGE_62   ((uint32_t)0x0800C000)  // Flash扇区62的起始地址      PbStatus
-#define ADDR_FLASH_PAGE_63   ((uint32_t)0x0800E000)  // Flash扇区63的起始地址      Baudrate
-#define ADDR_FLASH_PAGE_64   ((uint32_t)0x0800EC00)  // Flash扇区64的起始地址      Adc2_Calibration    4-20mA
-#define ADDR_FLASH_PAGE_65   ((uint32_t)0x0800F000)  // Flash扇区65的起始地址      Adc3_Calibration    4-20mA
-#define ADDR_FLASH_PAGE_66   ((uint32_t)0x0800FC00)  // Flash扇区66的起始地址      
+
+#define ADDR_FLASH_PAGE_94    ((uint32_t)0x802F000)  // Flash扇区94页的起始地址      address
+#define ADDR_FLASH_PAGE_104   ((uint32_t)0x8034000)  // Flash扇区104页的起始地址     PbStatus
+#define ADDR_FLASH_PAGE_114   ((uint32_t)0x8039000)  // Flash扇区114页的起始地址     Baudrate
+#define ADDR_FLASH_PAGE_124   ((uint32_t)0x803E000)  // Flash扇区124页的起始地址     Adc2_Calibration    4-20mA
+#define ADDR_FLASH_PAGE_134   ((uint32_t)0x8043000)  // Flash扇区134页的起始地址     Adc3_Calibration    4-20mA
+#define ADDR_FLASH_PAGE_144   ((uint32_t)0x8048000)  // Flash扇区144页的起始地址      
+  
 
 /* USER CODE END Private defines */
 

+ 3 - 3
Core/Src/adc.c

@@ -164,14 +164,14 @@ uint16_t adc3_rawValue = 0;
 
 void AdcCalibration_init(void)
 {
-    Value_old_addr2 = read_flash_16(ADDR_FLASH_PAGE_64);
-    Value_old_addr3 = read_flash_16(ADDR_FLASH_PAGE_65);
+    Value_old_addr2 = read_flash_16(ADDR_FLASH_PAGE_124);
+    Value_old_addr3 = read_flash_16(ADDR_FLASH_PAGE_134);
     
     Adc2_CalibrationValue = Value_old_addr2 != 0xFFFF ? Value_old_addr2 : Adc2_CalibrationValue;
     Adc3_CalibrationValue = Value_old_addr3 != 0xFFFF ? Value_old_addr3 : Adc3_CalibrationValue;
     Adc2_CalibrationValue &= 0x7FFF;
     Adc3_CalibrationValue &= 0x7FFF;
-} 
+}  
 
 void ApplyFilter(uint16_t raw_data, uint16_t* filtered_data, uint16_t* raw_data_buffer, uint8_t* buffer_index)
 {

+ 385 - 443
Core/Src/main.c

@@ -112,380 +112,336 @@ int main(void)
   MX_USART3_UART_Init();
   /* USER CODE BEGIN 2 */
   HAL_TIM_Base_Start_IT(&htim2);
-  read_new_address_from_flash(ADDR_FLASH_PAGE_61); 
-  updatePbStatus(read_flash_16(ADDR_FLASH_PAGE_62));
-  update_baudrate(read_flash_16(ADDR_FLASH_PAGE_63));
+  read_new_address(ADDR_FLASH_PAGE_94); 
+  updatePbStatus(read_flash_16(ADDR_FLASH_PAGE_104));
+  update_baudrate(read_flash_16(ADDR_FLASH_PAGE_114));
   AdcCalibration_init();
-	HAL_UART_Receive_DMA(&huart1, Rx_Buf, Rx_Max);  
-	__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); 
+  
+  HAL_UART_Receive_DMA(&huart1, Rx_Buf, Rx_Max);  
+  __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); 
   /* USER CODE END 2 */
 
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
   while (1)
-  {
-		if(Rx_Flag == 1 && (calculate_crc(Rx_Buf,6) == (Rx_Buf[7] << 8 | Rx_Buf[6]))) {	
-			if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpioaStatus, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max); 
-			}
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpiobStatus, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc2_byte1, adc2_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc3_byte1, adc3_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x05 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc1_byte1, adc1_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xBB && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, (uint8_t)(System_version >> 24), (uint8_t)(System_version >> 16), (uint8_t)(System_version >> 8), (uint8_t)(System_version ), 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 7);
-					data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[8] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpioaStatus, 0x00, gpiobStatus, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 7);
-					data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[8] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 9);
-					data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[10] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 11);
-					data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[12] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x05){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 13);
-					data_to_send[13] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[14] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 15, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}  
-			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 7);
-					data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[8] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}  
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 9);
-					data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[10] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}  
-			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 11);
-					data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[12] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}       
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 7);
-					data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[8] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}  
-			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte1, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 9);
-					data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[10] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			} 
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte1, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 7);
-					data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[8] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}   
-			
-			else if((Rx_Buf[0] == (uint8_t)initial_address || Rx_Buf[0] == 0xFA) && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					uint8_t data_to_send[] = {0xFA, 0x03, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			} 
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00){
-					updatePbStatus(Rx_Buf[5]);
-					erase_flash(ADDR_FLASH_PAGE_62);
-					write_flash_PbStatus(Rx_Buf);  // 写入Flash
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, Rx_Buf[5], 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			} 
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0A && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					erase_flash(ADDR_FLASH_PAGE_64);
-					write_flash_autoAdc(ADDR_FLASH_PAGE_64);
-					uint16_t now_calibrationValue = Adc2_CalibrationValue;
-					CoverADC(ADDR_FLASH_PAGE_64);
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, (uint8_t)((now_calibrationValue >> 8) & 0xFF), (uint8_t)(now_calibrationValue & 0xFF), 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}    
-					
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0B && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
-					erase_flash(ADDR_FLASH_PAGE_65);
-					write_flash_autoAdc(ADDR_FLASH_PAGE_65);
-					uint16_t now_calibrationValue = Adc3_CalibrationValue;
-					CoverADC(ADDR_FLASH_PAGE_65);
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, (uint8_t)((now_calibrationValue >> 8) & 0xFF), (uint8_t)(now_calibrationValue & 0xFF), 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}   
+  { 
+	if (Rx_Flag == 1 && (calculate_crc(Rx_Buf,6) == (Rx_Buf[7] << 8 | Rx_Buf[6]))) {		
+		if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
 			
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0C && Rx_Buf[4] == 0x00){
-					update_baudrate(Rx_Buf[5]);
-					erase_flash(ADDR_FLASH_PAGE_63);
-					write_flash_Baudrate(Rx_Buf);  // 写入Flash
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x00, 0x0C, 0x00, Rx_Buf[5], 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 6);
-					data_to_send[6] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[7] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 8, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}  
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00){
-					erase_flash(ADDR_FLASH_PAGE_61);
-					write_flash_address(Rx_Buf);  // 写入Flash
-					uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
-					uint16_t CRC_value = calculate_crc(data_to_send, 5);
-					data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
-					data_to_send[6] = (uint8_t)(CRC_value >> 8);
-					HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 15);
-					if(status == HAL_OK) {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-							Rx_Flag = 0;
-					} else {
-							memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-					}
-					HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}   
-
-			else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xCC && Rx_Buf[4] == 0xA5 && Rx_Buf[5] == 0x5A){
-					Rx_Flag = 0; // 将标志位重新置为0
-					memset(Rx_Buf,0,sizeof(Rx_Buf));
-					HAL_NVIC_SystemReset();
-			}	
-			else {
-				memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
-				HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
-			}
-			
-    }
-		gpioaStatus = GetPaInputStatus();
-    gpiobStatus = GetPbOutputStatus();
-    GetADCResults(&hadc1);
-		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
-		HAL_Delay(1);  
-		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
-		HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpioaStatus, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, 0x00, gpiobStatus, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){	
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc2_byte1, adc2_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc3_byte1, adc3_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x05 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x02, adc1_byte1, adc1_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpioaStatus, 0x00, gpiobStatus, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 7);
+			data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[8] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 9);
+			data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[10] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 10);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 11);
+			data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[12] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 12);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x01 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x05){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x0A, 0x00, gpioaStatus, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 13);
+			data_to_send[13] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[14] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 15, 14);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}  
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 7);
+			data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[8] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}  
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 9);
+			data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[10] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 10);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}  
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x04){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x08, 0x00, gpiobStatus, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 11);
+			data_to_send[11] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[12] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 13, 12);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}       
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 7);
+			data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[8] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}  
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x03 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x03){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x06, adc2_byte1, adc2_byte2, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 9);
+			data_to_send[9] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[10] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 11, 10);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		} 
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x04 && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, adc3_byte1, adc3_byte2, adc1_byte1, adc1_byte2, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 7);
+			data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[8] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}   
+		
+		else if((Rx_Buf[0] == (uint8_t)initial_address || Rx_Buf[0] == 0xFA) && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			uint8_t data_to_send[] = {0xFA, 0x03, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 6);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		} 
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x03 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xBB && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x02){
+
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x03, 0x04, (uint8_t)(System_version >> 24), (uint8_t)(System_version >> 16), (uint8_t)(System_version >> 8), (uint8_t)(System_version ), 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 7);
+			data_to_send[7] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[8] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 9, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x02 && Rx_Buf[4] == 0x00){
+
+			updatePbStatus(Rx_Buf[5]);
+			Write_Information(ADDR_FLASH_PAGE_104, Rx_Buf, 5);  // 写入Flash
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, Rx_Buf[5], 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 7);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		} 
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0A && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			Write_Information(ADDR_FLASH_PAGE_124, Rx_Buf, 0);
+			uint16_t now_calibrationValue = Adc2_CalibrationValue;
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, (uint8_t)((now_calibrationValue >> 8) & 0xFF), (uint8_t)(now_calibrationValue & 0xFF), 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 7);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}    
+				
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0B && Rx_Buf[4] == 0x00 && Rx_Buf[5] == 0x01){
+
+			Write_Information(ADDR_FLASH_PAGE_134, Rx_Buf, 0);
+			uint16_t now_calibrationValue = Adc3_CalibrationValue;
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, (uint8_t)((now_calibrationValue >> 8) & 0xFF), (uint8_t)(now_calibrationValue & 0xFF), 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 7);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}   
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0x0C && Rx_Buf[4] == 0x00){
+
+			update_baudrate(Rx_Buf[5]);
+			Write_Information(ADDR_FLASH_PAGE_114, Rx_Buf, 5);  // 写入Flash
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x00, 0x0C, 0x00, Rx_Buf[5], 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 6);
+			data_to_send[6] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[7] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 8, 8);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf)); 
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}  
+		
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xAA && Rx_Buf[4] == 0x00){
+
+			Write_Information(ADDR_FLASH_PAGE_94, Rx_Buf, 5);  // 写入Flash
+			uint8_t data_to_send[] = {(uint8_t)initial_address, 0x06, 0x02, 0x00, (uint8_t)initial_address, 0x00, 0x00};
+			uint16_t CRC_value = calculate_crc(data_to_send, 5);
+			data_to_send[5] = (uint8_t)(CRC_value & 0xFF);
+			data_to_send[6] = (uint8_t)(CRC_value >> 8);
+			HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, data_to_send, 7, 7);
+			memset(Rx_Buf, 0, sizeof(Rx_Buf));
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}   
+
+		else if(Rx_Buf[0] == (uint8_t)initial_address && Rx_Buf[1] == 0x06 && Rx_Buf[2] == 0x00 && Rx_Buf[3] == 0xCC && Rx_Buf[4] == 0xA5 && Rx_Buf[5] == 0x5A){
+			Rx_Flag = 0; // 将标志位重新置为0
+			memset(Rx_Buf,0,sizeof(Rx_Buf));
+			HAL_NVIC_SystemReset();
+		}	
+		else {
+			memset(Rx_Buf, 0, sizeof(Rx_Buf));
+			Rx_Flag = 0;	
+			HAL_UART_AbortReceive(&huart1);
+			HAL_UART_Receive_DMA(&huart1, Rx_Buf, sizeof(Rx_Buf)); 
+		}
+	}
+		
+	gpioaStatus = GetPaInputStatus();
+	gpiobStatus = GetPbOutputStatus();
+	GetADCResults(&hadc1);
+	
+	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
+	HAL_Delay(1);  
+	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
+	
+	HAL_UART_Receive_DMA(&huart1,Rx_Buf,Rx_Max);
 
     /* USER CODE END WHILE */
 
@@ -541,17 +497,17 @@ void SystemClock_Config(void)
 }
 
 /* USER CODE BEGIN 4 */
-uint16_t read_flash_16(uint32_t flash_address){
-    uint16_t data = *(volatile uint16_t*)flash_address;     // 从Flash中读取2个字节
+uint16_t read_flash_16(uint32_t addr){
+    uint16_t data = *(volatile uint16_t*)addr;     // 从Flash中读取2个字节
     return data;
 }
 
-void read_new_address_from_flash(uint32_t flash_address){
-		uint16_t init_address = read_flash_16(flash_address);
+void read_new_address(uint32_t addr){
+		uint16_t init_address = read_flash_16(addr);
 	  if(init_address == 0xFFFF) {
 			initial_address = initial_address;
 		} else {
-			initial_address = read_flash_16(flash_address);  // 读取新地址并赋值给initial_address
+			initial_address = init_address;  // 读取新地址并赋值给initial_address
 		}
 }
 
@@ -565,97 +521,83 @@ void erase_flash(uint32_t ADDR_FLASH){                //
     HAL_StatusTypeDef status = HAL_FLASHEx_Erase(&erase_init, &page_error);  // 执行擦除操作
     HAL_FLASH_Lock();  // 上锁Flash
     if(status == HAL_OK){
-        if(ADDR_FLASH == ADDR_FLASH_PAGE_61) {
+        if(ADDR_FLASH == ADDR_FLASH_PAGE_94) {
             initial_address = 0;         // 将initial_address清零
         }
-        if(ADDR_FLASH == ADDR_FLASH_PAGE_62) {
-            gpiobStatus = 0;           // 将pb_status清零
+        else if(ADDR_FLASH == ADDR_FLASH_PAGE_104) {
+            gpiobStatus = 0;             // 将pb_status清零
+        }
+        else if(ADDR_FLASH == ADDR_FLASH_PAGE_114) {
+            BaudrateValue = 0xFFFF;  
         }
-        if(ADDR_FLASH == ADDR_FLASH_PAGE_64) {
+        else if(ADDR_FLASH == ADDR_FLASH_PAGE_124) {
             Adc2_CalibrationValue = 0x0000;  // 清零
         }
-        if(ADDR_FLASH == ADDR_FLASH_PAGE_65) {
+        else if(ADDR_FLASH == ADDR_FLASH_PAGE_134) {
             Adc3_CalibrationValue = 0x0000;  // 清零
         }
         
-        if(ADDR_FLASH == ADDR_FLASH_PAGE_63) {
-            BaudrateValue = 0xFFFF;  
-        }
     }
 }
 
-void write_flash_address(uint8_t* rx_buffer) { //数组位置5进行写入——地址
-    uint8_t newAddress = rx_buffer[5];
-    HAL_FLASH_Unlock();  // 解锁Flash
-    HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_61, newAddress);  // 写入新地址到Flash
-    HAL_FLASH_Lock();  // 上锁Flash
-    if(status == HAL_OK){
-        initial_address = newAddress;  // 将新地址赋值给initial_address
-    }
-}
-
-void write_flash_PbStatus(uint8_t* rx_buffer){ //数组位置5进行写入——PB
-    uint8_t newStatus = rx_buffer[5];
-    HAL_FLASH_Unlock();  // 解锁Flash
-    HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_62, newStatus);  // 写入PbStatus到Flash
-    HAL_FLASH_Lock();  // 上锁Flash
-    if(status == HAL_OK){
-        gpiobStatus = newStatus;  // 将新状态赋值给pb_status
-    }
-}
-void write_flash_autoAdc(uint32_t ADDR_FLASH){
-    uint16_t Standard_value;
-    Standard_value = (0.6/(3.3/4096));
+void Write_Information(uint32_t addr, uint8_t* rx_buffer, uint8_t buffer_index) {
     uint16_t newValue = 0;
-    if(ADDR_FLASH == ADDR_FLASH_PAGE_64) {
-        if(adc2_rawValue >= Standard_value) {
-            newValue = adc2_rawValue - Standard_value;
-        } else {
-            newValue = Standard_value - adc2_rawValue;
-            newValue |= 0x8000;
+	  erase_flash(addr);
+    HAL_FLASH_Unlock();  // 解锁Flash
+	
+    if (addr == ADDR_FLASH_PAGE_94) {  // 写入地址到Flash
+        newValue = rx_buffer[buffer_index];
+        HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_94, newValue);
+        if (status == HAL_OK) {
+            initial_address = newValue;  // 将新地址赋值给initial_address
         }
-        HAL_FLASH_Unlock();  // 解锁Flash
-        HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH, newValue); 
-        HAL_FLASH_Lock();  // 上锁Flash
-        if(status == HAL_OK){
-            Adc2_CalibrationValue = newValue & 0x7FFF;
+    } 
+		else if (addr == ADDR_FLASH_PAGE_104) {  // 写入PB状态到Flash
+        newValue = rx_buffer[buffer_index];
+        HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_104, newValue);
+        if (status == HAL_OK) {
+            gpiobStatus = newValue;  // 将新状态赋值给gpiobStatus
         }
     } 
-    if(ADDR_FLASH == ADDR_FLASH_PAGE_65) {
-        if(adc3_rawValue >= Standard_value) {
-            newValue = adc3_rawValue - Standard_value;
-        } else {
-            newValue = Standard_value - adc3_rawValue;
-            newValue |= 0x8000;
+		else if (addr == ADDR_FLASH_PAGE_114) {  // 写入波特率到Flash
+        newValue = rx_buffer[buffer_index];
+        HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_114, newValue);
+        if (status == HAL_OK) {
+            BaudrateValue = newValue;  // 将新状态赋值给BaudrateValue
         }
-        HAL_FLASH_Unlock(); // 解锁Flash
-        HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH, newValue); 
-        HAL_FLASH_Lock(); // 上锁Flash
-        if(status == HAL_OK){
-            Adc3_CalibrationValue = newValue & 0x7FFF;
+    } 
+		else if (addr == ADDR_FLASH_PAGE_124 || addr == ADDR_FLASH_PAGE_134) {  // 写入ADC校准值到Flash
+        uint16_t Standard_value = (0.6 / (3.3 / 4096));
+        if (addr == ADDR_FLASH_PAGE_124) {
+            if (adc2_rawValue >= Standard_value) {
+                newValue = adc2_rawValue - Standard_value;
+            } else {
+                newValue = Standard_value - adc2_rawValue;
+                newValue |= 0x8000;
+            }
+            HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_124, newValue);
+            if (status == HAL_OK) {
+                Adc2_CalibrationValue = newValue & 0x7FFF;
+							  Value_old_addr2 = newValue;
+            }
+        } else if (addr == ADDR_FLASH_PAGE_134) {
+            if (adc3_rawValue >= Standard_value) {
+                newValue = adc3_rawValue - Standard_value;
+            } else {
+                newValue = Standard_value - adc3_rawValue;
+                newValue |= 0x8000;
+            }
+            HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_134, newValue);
+            if (status == HAL_OK) {
+                Adc3_CalibrationValue = newValue & 0x7FFF;
+							  Value_old_addr3 = newValue;
+            }
         }
     }
+    
+		HAL_FLASH_Lock();  // 上锁Flash
 }
 
-void CoverADC(uint32_t ADDR) {
-    uint16_t Overwrite_Value = read_flash_16(ADDR);
-    if (ADDR == ADDR_FLASH_PAGE_64) {
-        Value_old_addr2 = Overwrite_Value;
-    }
-    if (ADDR == ADDR_FLASH_PAGE_65) {
-        Value_old_addr3 = Overwrite_Value;
-    }
-}
-
-void write_flash_Baudrate(uint8_t* rx_buffer){ //数组位置5进行写入——Baudrate
-    uint8_t newStatus = rx_buffer[5];
-    HAL_FLASH_Unlock();  // 解锁Flash
-    HAL_StatusTypeDef status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, ADDR_FLASH_PAGE_63, newStatus);  // 写入PbStatus到Flash
-    HAL_FLASH_Lock();  // 上锁Flash
-    if(status == HAL_OK){
-        BaudrateValue = newStatus;  // 将新状态赋值给pb_status
-    }
-}
 /* USER CODE END 4 */
 
 /**

+ 0 - 1
Core/Src/usart.c

@@ -53,7 +53,6 @@ void MX_USART1_UART_Init(void)
     Error_Handler();
   }
   /* USER CODE BEGIN USART1_Init 2 */
-      HAL_UART_Receive_IT(&huart1, &receive_buffer[0], 8);
 
   /* USER CODE END USART1_Init 2 */
 

BIN
Doc/新版采集通讯模块的软件设计概要性方案.pdf


+ 36 - 0
MDK-ARM/DebugConfig/iocollect_STM32F103RE_1.0.0.dbgconf

@@ -0,0 +1,36 @@
+// File: STM32F101_102_103_105_107.dbgconf
+// Version: 1.0.0
+// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
+//                STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// <h> Debug MCU configuration register (DBGMCU_CR)
+//                                   <i> Reserved bits must be kept at reset value
+//   <o.30> DBG_TIM11_STOP           <i> TIM11 counter stopped when core is halted
+//   <o.29> DBG_TIM10_STOP           <i> TIM10 counter stopped when core is halted
+//   <o.28> DBG_TIM9_STOP            <i> TIM9 counter stopped when core is halted
+//   <o.27> DBG_TIM14_STOP           <i> TIM14 counter stopped when core is halted
+//   <o.26> DBG_TIM13_STOP           <i> TIM13 counter stopped when core is halted
+//   <o.25> DBG_TIM12_STOP           <i> TIM12 counter stopped when core is halted
+//   <o.21> DBG_CAN2_STOP            <i> Debug CAN2 stopped when core is halted
+//   <o.20> DBG_TIM7_STOP            <i> TIM7 counter stopped when core is halted
+//   <o.19> DBG_TIM6_STOP            <i> TIM6 counter stopped when core is halted
+//   <o.18> DBG_TIM5_STOP            <i> TIM5 counter stopped when core is halted
+//   <o.17> DBG_TIM8_STOP            <i> TIM8 counter stopped when core is halted
+//   <o.16> DBG_I2C2_SMBUS_TIMEOUT   <i> SMBUS timeout mode stopped when core is halted
+//   <o.15> DBG_I2C1_SMBUS_TIMEOUT   <i> SMBUS timeout mode stopped when core is halted
+//   <o.14> DBG_CAN1_STOP            <i> Debug CAN1 stopped when Core is halted
+//   <o.13> DBG_TIM4_STOP            <i> TIM4 counter stopped when core is halted
+//   <o.12> DBG_TIM3_STOP            <i> TIM3 counter stopped when core is halted
+//   <o.11> DBG_TIM2_STOP            <i> TIM2 counter stopped when core is halted
+//   <o.10> DBG_TIM1_STOP            <i> TIM1 counter stopped when core is halted
+//   <o.9>  DBG_WWDG_STOP            <i> Debug window watchdog stopped when core is halted
+//   <o.8>  DBG_IWDG_STOP            <i> Debug independent watchdog stopped when core is halted
+//   <o.2>  DBG_STANDBY              <i> Debug standby mode
+//   <o.1>  DBG_STOP                 <i> Debug stop mode
+//   <o.0>  DBG_SLEEP                <i> Debug sleep mode
+// </h>
+DbgMCU_CR = 0x00000007;
+
+// <<< end of configuration section >>>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 3664 - 0
MDK-ARM/iocollect.uvguix.Administrator


+ 1 - 1
MDK-ARM/iocollect.uvoptx

@@ -140,7 +140,7 @@
         <SetRegEntry>
           <Number>0</Number>
           <Key>JL2CM3</Key>
-          <Name>-U69618568 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO27 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RE$Flash\STM32F10x_512.FLM)</Name>
+          <Name>-U69618568 -O76 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO27 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RE$Flash\STM32F10x_512.FLM)</Name>
         </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>