liyi 1 éve%!(EXTRA string=óta)
szülő
commit
fe32b49fa1

+ 1 - 1
control/PDU-DC/App/CH442E/ch442e.c

@@ -20,7 +20,7 @@
 
 #define      CHOISE_STM32_1			gpio_bit_reset(CH442E_GPIO, CH442E_IN_GPIO)
 
-#define      CHOISE_STM32_2			gpio_bit_set(CH442E_GPIO, CH442E_IN_GPIO)
+#define      CHOISE_STM32_2			gpio_bit_set(CH442E_GPIO, CH442E_IN_GPIO) 
 
 
 void che442e_Init(void)

+ 12 - 2
control/PDU-DC/App/Main/Main.c

@@ -825,10 +825,12 @@ int main(void)
 			read_adc_val();
 			read_adc_flag = 0;
 		}
+
 		if(Get1SecFlag()) //判断1s标志状态
 		{
 			LEDFlicker2();
 			Clr1SecFlag();  //清除1s标志
+
 #if SUPPORT_DETECTION
 		detection_value = get_detection();
 #endif
@@ -883,8 +885,12 @@ int main(void)
 			uint32_t I_in = 0;
 			uint32_t W_in = 0;
 #if SUPPORT_STM32_ADC
-			uint32_t voltage_chi_1 = read_voltage(STM32_ADC_V_1) *1000;
-			uint32_t voltage_chi_2 = read_voltage(STM32_ADC_V_2) *1000;
+			uint32_t voltage_chi_1 = 0;
+			uint32_t voltage_chi_2 = 0;
+			voltage_chi_1 = read_voltage(STM32_ADC_V_1) ;
+			//delay_ms(5);
+			voltage_chi_2 = read_voltage(STM32_ADC_V_2) ;
+
 			DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = voltage_chi_1 > voltage_chi_2 ? voltage_chi_1 : voltage_chi_2;
 #else
 			DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = DC_V_calfunction(adc_Avg_value[ADC_VOL]);
@@ -1135,7 +1141,11 @@ void MODbus_CMD(void)
 		}
 		else if(Modbus_Wr_buff[Wr_eeprom_cnt][1] == Mb_Dbuff_RL_Alloff_Addr)//设置继电器全关
 		{
+#if SUPPORT_EIGHT_LIGHT
 			RL_Rx_state = 0x80;
+#else
+			RL_Rx_state = 0;
+#endif
 			RL_Alloff_flag = true;
 			//Eeprom_Rbuf[ERom_RL_ST_Addr] = 0x00;
 			//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);

+ 4 - 1
control/PDU-DC/App/Main/Main.h

@@ -980,7 +980,10 @@ typedef struct	DC_SUM_Para_struct_Reg
 }DC_SUM_Para_struct_Reg; 
 
 
-
+typedef union{
+	uint8_t 	data[4];
+	uint32_t     value;
+}Rx_Data;
 
 
 extern unsigned int All_On_Flag;							//继电器全开标志

+ 1 - 1
control/PDU-DC/App/Main/board_cnf.h

@@ -30,7 +30,7 @@
 #elif			PRJ_ADC_V_DC_4_4
 	#define RELAY_ChN_default             		8
 	#define SURPPOT_ALL_ON_ALL_OFF          	1
-	#define SUPPORT_DETECTION               	1
+	#define SUPPORT_DETECTION               	0
 	#define SUPPORT_STM32_ADC                 1
 #endif
 

+ 2 - 2
control/PDU-DC/App/detection/detection.c

@@ -30,9 +30,9 @@ void detection_Init()
 uint8_t get_detection()
 {
 	uint8_t value = 0;
-	if(gpio_input_bit_get(RCU_GPIOB,GPIO_PIN_3)==0)
+	if(gpio_input_bit_get(GPIOB,GPIO_PIN_3)==0)
 		value |= 1;
-	if(gpio_input_bit_get(RCU_GPIOA,GPIO_PIN_11)==0)
+	if(gpio_input_bit_get(GPIOA,GPIO_PIN_11)==0)
 		value |= 2;
 	return value;
 }

+ 28 - 6
control/PDU-DC/App/uart_IM1253E/IM1253E.c

@@ -157,28 +157,50 @@ void Write_IM1253E_REG(uint8_t dev_addr,uint16_t reg_addr,uint8_t *pt,uint8_t le
 
 Rx_Data data={0};
 
-float read_voltage(uint8_t channel)
+uint32_t read_voltage(uint8_t channel)
 {
 	uint16_t read_volatge = 0xA5A5;
+	uint32_t value;
 	RX_Length = 4;
 	che442_change_ch(channel);
+	//memset(&data.value,0,4);
+	DelayNms(5);
 	Start_Send_UartData((uint8_t*)&read_volatge,sizeof(read_volatge));
-	uint8_t count = 0;
+	int count = 0;
 	while(Rx_Finish_flag != true)
 	{
 		DelayNms(1);
-		if(count >= 50)
+		if(count >= 100)
 		{
 			RX_Index = 0;
 			Rx_Finish_flag =false;
 			break;
 		}
+		count++;
 	}
-	if(Rx_Finish_flag)
+	if(Rx_Finish_flag == false)
 	{
-		return data.value;
+		count =0;
+		Start_Send_UartData((uint8_t*)&read_volatge,sizeof(read_volatge));
+		while(Rx_Finish_flag != true)
+		{
+			DelayNms(1);
+			if(count >= 10)
+			{
+				RX_Index = 0;
+				Rx_Finish_flag =false;
+				break;
+			}
+		}
+		count ++;
 	}
-	return 0.0;
+	if(Rx_Finish_flag)
+	{
+		value = data.value;
+		Rx_Finish_flag = false;
+	}else
+		value = 0;
+	return value;
 }
 
 

+ 1 - 1
control/PDU-DC/App/uart_IM1253E/IM1253E.h

@@ -62,7 +62,7 @@ void Write_IM1253E_REG(uint8_t dev_addr,uint16_t reg_addr,uint8_t *pt,uint8_t le
 
 
 #if SUPPORT_STM32_ADC
-float read_voltage(uint8_t channel);
+uint32_t read_voltage(uint8_t channel);
 #endif
 
 

+ 15 - 0
control/PDU-DC/App/uart_IM1253E/Uart1.c

@@ -62,6 +62,21 @@ extern uint8_t W_R_reg_N;
 *********************************************************************************************************/
 void USART1_IRQHandler(void)            
 {
+	  if(usart_flag_get(USART1, USART_FLAG_ORERR) == SET) //溢出错误标志为1
+  {                                                         
+    usart_flag_clear(USART1, USART_FLAG_ORERR);       //清除溢出错误标志
+
+  }                                                                                                           
+	if(usart_interrupt_flag_get(USART1, USART_INT_FLAG_TBE)!= RESET)  //发送缓冲区空中断
+  {     
+	
+    usart_interrupt_flag_clear(USART1, USART_INT_FLAG_TBE);        //清除发送中断标志
+  }
+//	if(usart_interrupt_flag_get(USART1, USART_INT_FLAG_TC)!= RESET)  //发送完成中断
+//  {     	
+//		usart_interrupt_flag_clear(USART1, USART_INT_FLAG_TC);         //清除发送完成中断   
+////		gpio_bit_reset(GPIOA, GPIO_PIN_8);														 //接收		
+//  }
 	if(usart_interrupt_flag_get(USART1, USART_INT_FLAG_RBNE) != RESET)  //接收缓冲区非空中断
 	{
 		usart_interrupt_flag_clear(USART1, USART_INT_FLAG_RBNE);  //清除USART1中断挂起

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 105 - 132
control/PDU-DC/Project/GD32KeilPrj.uvguix.Gowon


+ 23 - 4
control/PDU-DC/Project/GD32KeilPrj.uvoptx

@@ -117,6 +117,10 @@
         <pMon>Segger\JL2CM3.dll</pMon>
       </DebugOpt>
       <TargetDriverDllRegistry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>DLGUARM</Key>
+        </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Key>DLGTARM</Key>
@@ -148,23 +152,38 @@
         <Ww>
           <count>0</count>
           <WinNumber>1</WinNumber>
-          <ItemText>RL_Rx_state</ItemText>
+          <ItemText>detection_value</ItemText>
         </Ww>
         <Ww>
           <count>1</count>
           <WinNumber>1</WinNumber>
-          <ItemText>Eeprom_Rbuf</ItemText>
+          <ItemText>data</ItemText>
         </Ww>
         <Ww>
           <count>2</count>
           <WinNumber>1</WinNumber>
-          <ItemText>RL_Rx_state</ItemText>
+          <ItemText>voltage_chi_1</ItemText>
         </Ww>
         <Ww>
           <count>3</count>
           <WinNumber>1</WinNumber>
+          <ItemText>voltage_chi_2</ItemText>
+        </Ww>
+        <Ww>
+          <count>4</count>
+          <WinNumber>1</WinNumber>
           <ItemText>DCPDU_Modbus_Reg</ItemText>
         </Ww>
+        <Ww>
+          <count>5</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>data</ItemText>
+        </Ww>
+        <Ww>
+          <count>6</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>RX_Index</ItemText>
+        </Ww>
       </WatchWindow1>
       <WatchWindow2>
         <Ww>
@@ -228,7 +247,7 @@
       <GroupNumber>1</GroupNumber>
       <FileNumber>1</FileNumber>
       <FileType>1</FileType>
-      <tvExp>0</tvExp>
+      <tvExp>1</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
       <PathWithFileName>..\App\Main\Main.c</PathWithFileName>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 3300 - 3412
control/PDU-DC/Project/JLinkLog.txt