/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.h * @brief : Header for main.c file. * This file contains the common defines of the application. ****************************************************************************** * @attention * *

© Copyright (c) 2019 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __MAIN_H #define __MAIN_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "stdio.h" #include "string.h" #include "iwdg.h" /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ #define DEBUG_INFO(format, args...) printf("[%s:%d][Info] "format, __FUNCTION__, __LINE__, ##args) #define DEBUG_WARN(format, args...) printf("[%s:%d][Warn] "format, __FUNCTION__, __LINE__, ##args) #define DEBUG_ERROR(format, args...) printf("[%s:%d][Error] "format, __FUNCTION__, __LINE__, ##args) #define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0])) #define MEMORY_LENGTH_CONFIG 0x1000 #define MEM_REAL_LENGTH 27 //27 two word = 52 word #define bool char //#define DEBUG enum { Fan1 = 0, Fan2, Fan3, Fan4, Fan5, Fan6, Fan7, Fan8 }; enum { AC_L1_GAIN = 0, AC_L2_GAIN, AC_L3_GAIN, DC_SMR1_GAIN, DC_SMR2_GAIN }; enum { MainRelay = 0x10, GunRelay = 0x12, MainBridge1 = 0x13, MainBridge2 = 0x14, MainBridge3 = 0x15, }; enum { Input_L1_AC_voltage = 0x01, Input_L2_AC_voltage, Input_L3_AC_voltage, Output_L1_AC_current = 0x11, Output_L2_AC_current, Output_L3_AC_current, Leak_current = 0x21, GMI_voltage = 0x31, GFD_Resister_Left = 0x46, GFD_Resister_Right = 0x47, Battery1_input_voltage = 0x51, Battery2_input_voltage, SMR1_output_voltage = 0x61, SMR2_output_voltage, SMR3_output_voltage, SMR4_output_voltage, SMR5_output_voltage, SMR6_output_voltage, }; enum { Parallel_relay_n = 0, Parallel_relay_p, SMR1_relay_n, SMR1_relay_p, SMR2_relay_n, SMR2_relay_p, LED1, Chdemo_Delay, Reserved, }; typedef union { uint64_t All; uint8_t Status[8]; struct __attribute__ ((packed)) { uint8_t AC_Contactor :1; uint8_t Precharge1 :1; uint8_t Precharge2 :1; uint8_t Reserved_0 :5; uint8_t SMR1_relay_n :1; uint8_t SMR1_relay_p :1; uint8_t Reserved_1 :6; uint8_t SMR2_relay_n :1; uint8_t SMR2_relay_p :1; uint8_t Reserved_2 :6; uint8_t SMR3_relay_n :1; uint8_t SMR3_relay_p :1; uint8_t Reserved_3 :6; uint8_t SMR4_relay_n :1; uint8_t SMR4_relay_p :1; uint8_t Reserved_4 :6; uint8_t SMR5_relay_n :1; uint8_t SMR5_relay_p :1; uint8_t Reserved_5 :6; uint8_t SMR6_relay_n :1; uint8_t SMR6_relay_p :1; uint8_t Reserved_6 :6; uint8_t Reserved_7 :8; } flags; } RLY_STATUS; typedef struct { uint8_t AC_Contactor :1; uint8_t Precharge1 :1; uint8_t Precharge2 :1; uint8_t Reserved_0 :5; uint8_t SMR1_relay_n :1; uint8_t SMR1_relay_p :1; uint8_t Reserved_1 :6; uint8_t SMR2_relay_n :1; uint8_t SMR2_relay_p :1; uint8_t Reserved_2 :6; uint8_t SMR3_relay_n :1; uint8_t SMR3_relay_p :1; uint8_t Reserved_3 :6; uint8_t SMR4_relay_n :1; uint8_t SMR4_relay_p :1; uint8_t Reserved_4 :6; uint8_t SMR5_relay_n :1; uint8_t SMR5_relay_p :1; uint8_t Reserved_5 :6; uint8_t SMR6_relay_n :1; uint8_t SMR6_relay_p :1; uint8_t Reserved_6 :6; } RLY_ST; typedef union { uint64_t All; struct __attribute__ ((packed)) { uint8_t AC_Contactor :1; uint8_t Precharge1 :1; uint8_t Precharge2 :1; uint8_t Reserved_0 :5; uint8_t SMR1_relay_n :1; uint8_t SMR1_relay_p :1; uint8_t Reserved_1 :6; uint8_t SMR2_relay_n :1; uint8_t SMR2_relay_p :1; uint8_t Reserved_2 :6; uint8_t SMR3_relay_n :1; uint8_t SMR3_relay_p :1; uint8_t Reserved_3 :6; uint8_t SMR4_relay_n :1; uint8_t SMR4_relay_p :1; uint8_t Reserved_4 :6; uint8_t SMR5_relay_n :1; uint8_t SMR5_relay_p :1; uint8_t Reserved_5 :6; uint8_t SMR6_relay_n :1; uint8_t SMR6_relay_p :1; uint8_t Reserved_6 :6; uint8_t Reserved_7 :8; } flags; } RLY_GPIO; typedef union { uint16_t All; struct __attribute__ ((packed)) { uint8_t Relay1_Fail :1; uint8_t Relay2_Fail :1; uint8_t Relay3_Fail :1; uint8_t Relay4_Fail :1; uint8_t Relay5_Fail :1; uint8_t Relay6_Fail :1; uint8_t Relay7_Fail :1; uint8_t Relay8_Fail :1; uint8_t Gfd_Alarm_0 :1; uint8_t Gfd_Alarm_1 :1; uint8_t Reserved_1 :6; } flags; } ALARM; typedef union { uint8_t All; struct __attribute__ ((packed)) { // LSB to begin uint8_t Fan_Enable:1; uint8_t Drv_Up:1; uint8_t Drv_Down:1; uint8_t Reversed:5; // MSB to End } flags; } _GPIO_; typedef union { uint8_t Mode; struct __attribute__ ((packed)) { // LSB to begin uint8_t SW0:1; uint8_t SW1:1; uint8_t SW2:1; uint8_t Reversed:5; // MSB to End } flags; } _DIP_SW_; typedef struct COEFFICIENT { float gain_volt; float offset_volt; } Coefficient; typedef struct SF_TEST { struct { uint8_t SF_test_status; uint8_t SF_Act; uint8_t SF_State; union { uint64_t value; struct { uint8_t test_item1 :1; uint8_t test_item2 :1; uint8_t test_item3 :1; uint8_t test_item4 :1; uint8_t test_item5 :1; uint8_t test_item6 :1; uint8_t test_item7 :1; uint8_t test_item8 :1; uint8_t test_item9 :1; uint8_t test_item10 :1; uint8_t test_item11 :1; uint8_t test_item12 :1; uint8_t test_item13 :1; uint8_t test_item14 :1; uint8_t test_item15 :1; uint8_t test_item16 :1; uint8_t test_item17 :1; uint8_t test_item18 :1; uint8_t test_item19 :1; uint8_t test_item20 :1; uint8_t test_item21 :1; uint8_t test_item22 :1; uint8_t test_item23 :1; uint8_t test_item24 :1; uint8_t test_item25 :1; uint8_t test_item26 :1; uint8_t test_item27 :1; uint8_t test_item28 :1; uint8_t test_item29 :1; uint8_t test_item30 :1; uint8_t test_item31 :1; uint8_t test_item32 :1; uint8_t test_item33 :1; uint8_t test_item34 :1; } items; } data; } SF_Config; } SF_test; // V18 memory structure. typedef struct MEM { struct { union { // 0x1000 = 10240 byte , uint32_t = 4byte , array size = 10240/4 = 1000 uint32_t value[MEMORY_LENGTH_CONFIG]; struct { // 16 Byte -> Voltage correction point data(adc & meter) [point][adc & meter], unit: 0.1V uint16_t Correction_Volt[9][2]; // [L1-point1~L3-point3][ADC,Set Value] uint16_t DC_Correction_Volt[12][2]; // [SMR1 point1~SMR6 point2][ADC,Set Value] uint16_t GFD_Correction_Resistor[4][2]; // [L-GFD point1~R-GFD point2][ADC,Set Value] uint16_t DCIn_Correction_Volt[2][2]; // [DC In 2 point][ADC,Set Value] } item; } data; struct { uint8_t update:1; // Update ram content to external flash request uint8_t clear:1; // Clear ram & external flash content request uint8_t read:1; // Read external flash content to ram request uint8_t reserved:5; } op_bits; } Module_Config; }Mem; struct Detet_Fan_IO { uint32_t Difference; uint32_t Frequency; uint32_t ubFan_RPM; uint8_t Rpm_Idx; uint16_t Second; uint8_t Fan_Fail; }; struct Gun_Gfd_Check { uint8_t Rfd_State; uint8_t Csu_State; uint8_t Gfd_Running_Count; uint8_t Gfd_Warning_Count; uint8_t bResult_Gfd; uint32_t R_GFD; uint32_t R_GFD_v; uint32_t R_GFD_Fail; uint8_t Rfd_State_Fail; uint32_t SMR_Voltage_Fail; uint8_t bFirstGfd; }; extern const uint16_t nRPM_Tbl[11][2]; extern uint16_t serial_n; extern SF_test sf_t; extern float Avg_offset_v; extern uint16_t Freq_CLC_Grid_v; extern uint8_t bGfd_Correct[2]; extern uint32_t nGfd_Temp[2][17]; extern uint32_t R_GFD_Total[2]; extern uint8_t nGfd_Idx[2]; extern uint16_t pwmVal; extern uint8_t dir; extern uint8_t bRelayFeedback; extern uint8_t nBoard_Addr; extern float c_vadc[2]; extern uint8_t nGun; extern bool GainCaliFlag; #define vsense1 24.42 // for ADC1 (330 / 4095 / 0.0033) = 24.42 #define vsense2 0.002919 //#define vsense3 4.118 // for current (330 / 4095 / 0.01957 ) = 4.118 #define vsense3 24448.7 // 5000 / (5.1*4.01) * 100 = 24448.7 (5000:CT �I��v 5.1:�q���q�� 20.5K/5.11K=4.01 OP���v) #define v_div_1K 0.8059 // 3300 / 4095 #define v_div 0.0008059 // 3.3 / 4095 #define FAN_RPM_DEF 6200 #define FAN_PWM_PERIOD 4200 #define FAN_TOLERANCE 50 // 50 Percent #define PWM_Limit 9980 #define OFF 0 #define ON 1 #define FAIL 0 #define PASS 1 #define NO 0 #define YES 1 #define true 1 #define false 0 #define SMR1_Relay_Shift_V 0 // 27 #define SMR1_Fuse_Shift_V 0 #define SMR2_Relay_Shift_V 0 // 14 #define SMR2_Fuse_Shift_V 0 #define LINE_VOLTAGE_POINT 100 #define LINE_VOLTAGE_TOLERANCE 200 #define V165_OFFSET 7 //<<<<<<< HEAD #define DC_LOW_GAIN 1 #define DC_HIGH_GAIN 1 // 1.0035 //======= //#define DC_LOW_GAIN 1.0314 //#define DC_HIGH_GAIN 1.02 // 1.0035 //>>>>>>> be39927da1874c206c78d2be3fcbaa101e72d2ea #define GFD_UNKNOW 0 #define GFD_PASS 1 #define GFD_FAIL 2 #define GFD_WARNING 3 //<<<<<<< HEAD #define GFD_TEST_TIMES 15 #define GFD_SLEF_TEST_RESISTOR_TOLERANCE 45000 // 30K -> 45K ohm //#define GFD_SELF_TEST_RESISTOR 55000 #define GFD_SELF_TEST_RESISTOR (50000 + GFD_SLEF_TEST_RESISTOR_TOLERANCE) // 95K ohm #define GFD_FILTER_LIMIT 16 //======= //#define GFD_OPT_COUP_RESISTER 35000 //#define GFD_TEST_TIMES 15 //>>>>>>> be39927da1874c206c78d2be3fcbaa101e72d2ea #define ISOLATION_TEST_VOLTAGE 5000 #define WAIT_FOR_RESISTER_CALC 30 // mini_second #define WAIT_FOR_RESISTER_CALC_LONG 50 #define WAIT_FOR_RESISTER_CALC_FAST 30 #define MCU_DATA 0 #define METER_DATA 1 #define PREVENT_REPEAT_OFF 1 #define RELAY_ALL_ON 0 #define FEEDBACK_PIN 1 #define DEBUG_PRINTF 1 #define GFD_SELF_TEST 1 #define GFD_DEFAULT_V4 1 #define READ_IO_NO_DELAY 1 #define AC_INPUT_1ST_POINT 2800 // OVP +10 #define AC_INPUT_2ND_POINT 2200 // UVP -10 #define AC_INPUT_3RD_POINT 1600 // UVP -10 #define DC_OUTPUT_1ST_POINT 9500 #define DC_OUTPUT_2ND_POINT 1500 #define GFD_RESISTOR_WARNING 100 #define GFD_RESISTOR_PRE_WARNING 500 #define EVSE_MAX_OUTPUT_VOLTAGE 950 #define GFD_EXTRA_FAIL_RESISTOR 5000 #define GFD_RESISTOR_COEFFICIENT 73.8 // 73.8 , 51.3 #define GFD_SENSE_VOLTAGE_UP_LIMIT 1.75 // 1.75 #define GFD_SENSE_VOLTAGE_DOWN_LIMIT 1.55 // 1.55 #define GFD_SENSE_CENTER_VOLTAGE 1.65 #define GFD_WORKING_VOLTAGE 2000 // 200v, for Safety Test : 1400 //#define AC_CORRECT_GAIN_MAX_NUM 6 #define DC_CORRECT_GAIN_MAX_NUM 6 #define GFD_CORRECT_GAIN_MAX_NUM 2 //#define DC_CORR_2ND_SHIFT 7 //#define DEFAULT_COFF_3 1.00768 //#define DEFAULT_OFFST_3 -15.556 //#define DEFAULT_COFF_4 1.00553 //#define DEFAULT_OFFST_4 -2.262 // //#define DEFAULT_COFF_5 1.086 //#define DEFAULT_OFFST_5 -358.322 //#define DEFAULT_COFF_6 1.241 //#define DEFAULT_OFFST_6 -481.362 /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); /* USER CODE BEGIN EFP */ #define PWM_CH_FAN_START 0 //void user_pwm_setvalue(uint8_t ch, uint16_t value); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ #define CP0_EXTI_Pin GPIO_PIN_0 #define CP0_EXTI_GPIO_Port GPIOF #define CP0_EXTI_EXTI_IRQn EXTI0_IRQn #define CP1_EXTI_Pin GPIO_PIN_1 #define CP1_EXTI_GPIO_Port GPIOF #define CP1_EXTI_EXTI_IRQn EXTI1_IRQn #define CP2_EXTI_Pin GPIO_PIN_2 #define CP2_EXTI_GPIO_Port GPIOF #define CP2_EXTI_EXTI_IRQn EXTI2_IRQn #define CP3_EXTI_Pin GPIO_PIN_3 #define CP3_EXTI_GPIO_Port GPIOF #define CP3_EXTI_EXTI_IRQn EXTI3_IRQn #define CP4_EXTI_Pin GPIO_PIN_4 #define CP4_EXTI_GPIO_Port GPIOF #define CP4_EXTI_EXTI_IRQn EXTI4_IRQn #define CP5_EXTI_Pin GPIO_PIN_5 #define CP5_EXTI_GPIO_Port GPIOF #define CP5_EXTI_EXTI_IRQn EXTI9_5_IRQn #define SMR1_Gfd_Sense_Pin GPIO_PIN_6 #define SMR1_Gfd_Sense_GPIO_Port GPIOF #define SMR2_Gfd_Sense_Pin GPIO_PIN_7 #define SMR2_Gfd_Sense_GPIO_Port GPIOF #define DC_In_Pin GPIO_PIN_10 #define DC_In_GPIO_Port GPIOF #define SMR3_Relay_Voltage_Pin GPIO_PIN_1 #define SMR3_Relay_Voltage_GPIO_Port GPIOC #define SMR4_Relay_Voltage_Pin GPIO_PIN_2 #define SMR4_Relay_Voltage_GPIO_Port GPIOC #define SMR5_Relay_Voltage_Pin GPIO_PIN_3 #define SMR5_Relay_Voltage_GPIO_Port GPIOC #define SMR6_Relay_Voltage_Pin GPIO_PIN_0 #define SMR6_Relay_Voltage_GPIO_Port GPIOA #define CSRHB_VER_Pin GPIO_PIN_3 #define CSRHB_VER_GPIO_Port GPIOA #define SMR1_Relay_Voltage_Pin GPIO_PIN_4 #define SMR1_Relay_Voltage_GPIO_Port GPIOA #define SMR1_Current_Pin GPIO_PIN_5 #define SMR1_Current_GPIO_Port GPIOA #define SMR2_Relay_Voltage_Pin GPIO_PIN_6 #define SMR2_Relay_Voltage_GPIO_Port GPIOA #define SMR2_Current_Pin GPIO_PIN_7 #define SMR2_Current_GPIO_Port GPIOA #define AC_Input_L1_Pin GPIO_PIN_4 #define AC_Input_L1_GPIO_Port GPIOC #define AC_Input_L2_Pin GPIO_PIN_5 #define AC_Input_L2_GPIO_Port GPIOC #define AC_Input_L3_Pin GPIO_PIN_0 #define AC_Input_L3_GPIO_Port GPIOB #define Vref_165_Pin GPIO_PIN_1 #define Vref_165_GPIO_Port GPIOB #define Contactor_Enable_Pin GPIO_PIN_13 #define Contactor_Enable_GPIO_Port GPIOF #define PSU_Enable1_Pin GPIO_PIN_14 #define PSU_Enable1_GPIO_Port GPIOF #define PSU_Enable2_Pin GPIO_PIN_15 #define PSU_Enable2_GPIO_Port GPIOF #define SW1_Pin GPIO_PIN_1 #define SW1_GPIO_Port GPIOG #define SW0_Pin GPIO_PIN_7 #define SW0_GPIO_Port GPIOE #define SW2_Pin GPIO_PIN_8 #define SW2_GPIO_Port GPIOE #define SMR5_Relay_p_Ret_Pin GPIO_PIN_13 #define SMR5_Relay_p_Ret_GPIO_Port GPIOB #define SMR5_Relay_n_Ret_Pin GPIO_PIN_14 #define SMR5_Relay_n_Ret_GPIO_Port GPIOB #define SMR6_Relay_p_Ret_Pin GPIO_PIN_8 #define SMR6_Relay_p_Ret_GPIO_Port GPIOD #define SMR6_Relay_n_Ret_Pin GPIO_PIN_9 #define SMR6_Relay_n_Ret_GPIO_Port GPIOD #define Sys2_Self_Test_DC_n_Pin GPIO_PIN_10 #define Sys2_Self_Test_DC_n_GPIO_Port GPIOD #define Sys2_Self_Test_DC_p_Pin GPIO_PIN_11 #define Sys2_Self_Test_DC_p_GPIO_Port GPIOD #define Drv_Down_2_Pin GPIO_PIN_12 #define Drv_Down_2_GPIO_Port GPIOD #define Drv_Up_2_Pin GPIO_PIN_13 #define Drv_Up_2_GPIO_Port GPIOD #define SMR4_Relay_p_Ret_Pin GPIO_PIN_14 #define SMR4_Relay_p_Ret_GPIO_Port GPIOD #define SMR4_Relay_n_Ret_Pin GPIO_PIN_15 #define SMR4_Relay_n_Ret_GPIO_Port GPIOD #define AC_Contactor_Ret_Pin GPIO_PIN_2 #define AC_Contactor_Ret_GPIO_Port GPIOG #define SMR1_Relay_p_Ret_Pin GPIO_PIN_3 #define SMR1_Relay_p_Ret_GPIO_Port GPIOG #define SMR1_Relay_n_Ret_Pin GPIO_PIN_4 #define SMR1_Relay_n_Ret_GPIO_Port GPIOG #define SMR2_Relay_p_Ret_Pin GPIO_PIN_5 #define SMR2_Relay_p_Ret_GPIO_Port GPIOG #define SMR2_Relay_n_Ret_Pin GPIO_PIN_6 #define SMR2_Relay_n_Ret_GPIO_Port GPIOG #define SMR3_Relay_p_Ret_Pin GPIO_PIN_7 #define SMR3_Relay_p_Ret_GPIO_Port GPIOG #define SMR3_Relay_n_Ret_Pin GPIO_PIN_8 #define SMR3_Relay_n_Ret_GPIO_Port GPIOG #define Precharge1_Ret_Pin GPIO_PIN_6 #define Precharge1_Ret_GPIO_Port GPIOC #define DBG_RX_Pin GPIO_PIN_7 #define DBG_RX_GPIO_Port GPIOC #define Precharge2_Ret_Pin GPIO_PIN_8 #define Precharge2_Ret_GPIO_Port GPIOC #define RS485_DE_Pin GPIO_PIN_9 #define RS485_DE_GPIO_Port GPIOC #define RS485_RE_Pin GPIO_PIN_8 #define RS485_RE_GPIO_Port GPIOA #define Sys1_Self_Test_DC_p_Pin GPIO_PIN_12 #define Sys1_Self_Test_DC_p_GPIO_Port GPIOA #define SMR1_RLY_p_Enable_Pin GPIO_PIN_15 #define SMR1_RLY_p_Enable_GPIO_Port GPIOA #define SMR1_RLY_n_Enable_Pin GPIO_PIN_10 #define SMR1_RLY_n_Enable_GPIO_Port GPIOC #define SMR3_RLY_p_Enable_Pin GPIO_PIN_11 #define SMR3_RLY_p_Enable_GPIO_Port GPIOC #define SMR2_RLY_p_Enable_Pin GPIO_PIN_12 #define SMR2_RLY_p_Enable_GPIO_Port GPIOC #define SMR2_RLY_n_Enable_Pin GPIO_PIN_0 #define SMR2_RLY_n_Enable_GPIO_Port GPIOD #define Precharge1_Enable_Pin GPIO_PIN_1 #define Precharge1_Enable_GPIO_Port GPIOD #define Drv_Up_Pin GPIO_PIN_2 #define Drv_Up_GPIO_Port GPIOD #define Drv_Down_Pin GPIO_PIN_3 #define Drv_Down_GPIO_Port GPIOD #define SMR3_RLY_n_Enable_Pin GPIO_PIN_4 #define SMR3_RLY_n_Enable_GPIO_Port GPIOD #define Precharge2_Enable_Pin GPIO_PIN_5 #define Precharge2_Enable_GPIO_Port GPIOD #define SMR4_RLY_p_Enable_Pin GPIO_PIN_6 #define SMR4_RLY_p_Enable_GPIO_Port GPIOD #define SMR4_RLY_n_Enable_Pin GPIO_PIN_7 #define SMR4_RLY_n_Enable_GPIO_Port GPIOD #define SMR5_RLY_p_Enable_Pin GPIO_PIN_10 #define SMR5_RLY_p_Enable_GPIO_Port GPIOG #define SMR5_RLY_n_Enable_Pin GPIO_PIN_11 #define SMR5_RLY_n_Enable_GPIO_Port GPIOG #define SMR6_RLY_p_Enable_Pin GPIO_PIN_12 #define SMR6_RLY_p_Enable_GPIO_Port GPIOG #define SMR6_RLY_n_Enable_Pin GPIO_PIN_13 #define SMR6_RLY_n_Enable_GPIO_Port GPIOG #define DBG_TX_Pin GPIO_PIN_14 #define DBG_TX_GPIO_Port GPIOG #define Sys1_Self_Test_DC_n_Pin GPIO_PIN_5 #define Sys1_Self_Test_DC_n_GPIO_Port GPIOB #define LED1_Pin GPIO_PIN_7 #define LED1_GPIO_Port GPIOB #define LED2_Pin GPIO_PIN_0 #define LED2_GPIO_Port GPIOE #define LED3_Pin GPIO_PIN_1 #define LED3_GPIO_Port GPIOE /* USER CODE BEGIN Private defines */ extern struct MODULE_INFO { // Board info uint8_t Soft_Ver_Ptr[16]; uint8_t Hard_Ver_Ptr[16]; uint8_t SN[20]; // Dip_Switch Status _DIP_SW_ Dip_status; // Relay DC voltage info uint32_t SMR1_Relay_V; uint32_t SMR1_Relay_C; uint32_t SMR2_Relay_V; uint32_t SMR2_Relay_C; uint32_t SMR3_Relay_V; uint32_t SMR4_Relay_V; uint32_t SMR5_Relay_V; uint32_t SMR6_Relay_V; uint32_t Verf_165_V; uint32_t BAT_Voltage; // Ground sense info float Vref_165; float SMR_Gfd_Sense[2]; float SMR_Gfd_Diff[2]; uint32_t R_GFD; struct Gun_Gfd_Check gfd_chk[2]; // GPIO info RLY_STATUS Relay_Status; RLY_GPIO Relay_IO; _GPIO_ Gpio_status; struct Detet_Fan_IO fan[1]; // Memory info Mem memory; // Coefficient info Coefficient ACVcoeff[3]; // 0~2:AC,3~8:DC SMR1~SMR6,9~10:GRD Coefficient DCVcoeff[6]; Coefficient GFDcoeff[2]; Coefficient DCINcoeff; // Alarm info ALARM Alarm_CSU; }Module_Info; extern RLY_ST RelayStatus; extern struct COUNTER { uint8_t nAC_Drop; uint8_t nInterLock; uint8_t nRelay_Timeout[8]; }Counter; extern struct OP_FLAG { uint8_t bRelay_Config_Change:1; uint8_t bInterLock:1; }OpFlag; extern struct EXT_inupt { bool Exti_SMR1_Flag:1; bool Exti_SMR2_Flag:1; bool Exti_SMR3_Flag:1; bool Exti_SMR4_Flag:1; bool Exti_SMR5_Flag:1; bool Exti_SMR6_Flag:1; bool reserve :2; }Exti; extern uint8_t EXTI_SMR1_Count; extern uint8_t EXTI_SMR2_Count; extern uint8_t EXTI_SMR3_Count; extern uint8_t EXTI_SMR4_Count; extern uint8_t EXTI_SMR5_Count; extern uint8_t EXTI_SMR6_Count; extern uint8_t EXTI_Test_Count; extern uint8_t EXTI_TestFlag1; extern uint8_t EXTI_TestFlag2; extern uint8_t EXTI_TestFlag3; extern uint8_t EXTI_TestFlag4; extern uint8_t EXTI_TestFlag5; extern uint8_t EXTI_TestFlag6; extern CAN_TxHeaderTypeDef TxHeader; extern CAN_RxHeaderTypeDef RxHeader; extern uint8_t TxData[8]; extern uint8_t RxData[8]; extern uint32_t TxMailbox; extern uint32_t canError; extern uint8_t temp1,temp2,temp3,temp4; extern float temp5,temp6,temp7,temp8; /* USER CODE END Private defines */ #ifdef __cplusplus } #endif #endif /* __MAIN_H */