123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 |
- /**
- ******************************************************************************
- * File Name : gpio.c
- * Description : This file provides code for the configuration
- * of all used GPIO pins.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2023 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under Ultimate Liberty license
- * SLA0044, the "License"; You may not use this file except in compliance with
- * the License. You may obtain a copy of the License at:
- * www.st.com/SLA0044
- *
- ******************************************************************************
- */
- /* Includes ------------------------------------------------------------------*/
- #include "gpio.h"
- /* USER CODE BEGIN 0 */
- #include "rtc.h"
- //uint8_t is_Relay1_First; //no used
- /* USER CODE END 0 */
- /*----------------------------------------------------------------------------*/
- /* Configure GPIO */
- /*----------------------------------------------------------------------------*/
- /* USER CODE BEGIN 1 */
- /* USER CODE END 1 */
- /** Configure pins as
- * Analog
- * Input
- * Output
- * EVENT_OUT
- * EXTI
- */
- void MX_GPIO_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- /* GPIO Ports Clock Enable */
- __HAL_RCC_GPIOE_CLK_ENABLE();
- __HAL_RCC_GPIOC_CLK_ENABLE();
- __HAL_RCC_GPIOF_CLK_ENABLE();
- __HAL_RCC_GPIOH_CLK_ENABLE();
- __HAL_RCC_GPIOA_CLK_ENABLE();
- __HAL_RCC_GPIOB_CLK_ENABLE();
- __HAL_RCC_GPIOG_CLK_ENABLE();
- __HAL_RCC_GPIOD_CLK_ENABLE();
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(OUT_MeterIC_Reset_GPIO_Port, OUT_MeterIC_Reset_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOE, OUT_BLE_RESET_Pin|NoneUse_Pin65_GPIO_PE12_Pin|Meter_DIR_Pin|OUT_SPI1_CS_Pin
- |OUT_StateE_Pin|OUT_LED_Breathe_Pin, GPIO_PIN_RESET);
- #ifdef RELAY_COMMON_GPIO
- //Relay: PC9
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, OUT_Tilt_DrvLeakage_Pin|NoneUse_Pin28_GPIO_PC2_Pin|OutpowerCtr_LED24V_Pin|LED_R_Ctr_Pin
- |LED_G_Ctr_Pin|/***/GPIO_PIN_9/***/|OUT_1998_Pin|OUT_Meter_485_RE_Pin, GPIO_PIN_RESET);
- #else
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, OUT_Tilt_DrvLeakage_Pin|NoneUse_Pin28_GPIO_PC2_Pin|OutpowerCtr_LED24V_Pin|LED_R_Ctr_Pin
- |LED_G_Ctr_Pin|OUT_RelayDrv_L1_Pin|OUT_1998_Pin|OUT_Meter_485_RE_Pin, GPIO_PIN_RESET);
- #endif
- #ifdef RELAY_COMMON_GPIO
- //Relay: PA8, PA9, PA10
- HAL_GPIO_WritePin(GPIOA, RS485_SW_Pin|BLE_SW_Pin|NoneUse_Pin43_GPIO_PA7_Pin|/***/GPIO_PIN_8/***/
- |/***/GPIO_PIN_9/***/|/***/GPIO_PIN_10/***/, GPIO_PIN_RESET);
- #else
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOA, RS485_SW_Pin|BLE_SW_Pin|NoneUse_Pin43_GPIO_PA7_Pin|OUT_RelayHold_L1_Pin
- |OUT_RelayDrv_L2_Pin|OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
- #endif
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOB, LED_B_Ctr_Pin|M_LED_B1_Pin|NoneUse_Pin48_GPIO_PB2_Pin|NoneUse_Pin69_GPIO_PB10_Pin
- |NoneUse_Pin74_GPIO_PB13_Pin|OUT_Leak_Test_Pin|M_LED_G1_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOF, OUT_LOCK_L_Pin|OUT_UNLOCK_L_Pin|NoneUse_Pin54_GPIO_PF14_Pin|NoneUse_Pin55_GPIO_PF15_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOG, OUT_Tilt_Test_Pin|OUT_BLE_DSR_Pin|OUT_SocketE_Drv_Pin|OUT_SocketE_Hold_Pin
- |OUT_Meter_Power_Pin|OUT_RFID_Reset_Pin|NoneUse_Pin126_GPIO_PG11_Pin|OUT_TrigLeakage_Pin
- |NoneUse_Pin128_GPIO_PG13_Pin|LIN_PWM_SW_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOD, OUT_Speaker_Pin|NoneUse_Pin86_GPIO_PD15_Pin|NoneUse_Pin114_GPIO_PD0_Pin|NoneUse_Pin115_GPIO_PD1_Pin
- |OUT_USB_DriveBus_Pin|OUT_Meter_485_DE_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = OUT_MeterIC_Reset_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(OUT_MeterIC_Reset_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : PEPin PEPin PEPin */
- GPIO_InitStruct.Pin = OUT_BLE_RESET_Pin|NoneUse_Pin65_GPIO_PE12_Pin|Meter_DIR_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : PEPin PEPin */
- GPIO_InitStruct.Pin = IN_Tilt_ActOn_Pin|IN_Grid_Groundding_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : PCPin PCPin */
- GPIO_InitStruct.Pin = OUT_Tilt_DrvLeakage_Pin|NoneUse_Pin28_GPIO_PC2_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pins : PFPin PFPin */
- GPIO_InitStruct.Pin = IN_MEM_Erase_Pin|IN_LOCK_Status_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
- /*Configure GPIO pins : PCPin PCPin PCPin PCPin
- PCPin PCPin */
- #ifdef RELAY_COMMON_GPIO
- GPIO_InitStruct.Pin = OutpowerCtr_LED24V_Pin|LED_R_Ctr_Pin|LED_G_Ctr_Pin|/***/GPIO_PIN_9/***/
- |OUT_1998_Pin|OUT_Meter_485_RE_Pin;
- #else
- GPIO_InitStruct.Pin = OutpowerCtr_LED24V_Pin|LED_R_Ctr_Pin|LED_G_Ctr_Pin|OUT_RelayDrv_L1_Pin
- |OUT_1998_Pin|OUT_Meter_485_RE_Pin;
- #endif
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pins : PAPin PAPin PAPin PAPin
- PAPin */
- #ifdef RELAY_COMMON_GPIO
- GPIO_InitStruct.Pin = RS485_SW_Pin|BLE_SW_Pin|/***/GPIO_PIN_8/***/|/***/GPIO_PIN_9/***/
- |/***/GPIO_PIN_10/***/;
- #else
- GPIO_InitStruct.Pin = RS485_SW_Pin|BLE_SW_Pin|OUT_RelayHold_L1_Pin|OUT_RelayDrv_L2_Pin
- |OUT_RelayHold_L2_Pin;
- #endif
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = NoneUse_Pin43_GPIO_PA7_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(NoneUse_Pin43_GPIO_PA7_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : PBPin PBPin PBPin PBPin */
- GPIO_InitStruct.Pin = LED_B_Ctr_Pin|M_LED_B1_Pin|OUT_Leak_Test_Pin|M_LED_G1_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- /*Configure GPIO pins : PBPin PBPin PBPin */
- GPIO_InitStruct.Pin = NoneUse_Pin48_GPIO_PB2_Pin|NoneUse_Pin69_GPIO_PB10_Pin|NoneUse_Pin74_GPIO_PB13_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = OUT_LOCK_L_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(OUT_LOCK_L_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : PFPin PFPin PFPin */
- GPIO_InitStruct.Pin = OUT_UNLOCK_L_Pin|NoneUse_Pin54_GPIO_PF14_Pin|NoneUse_Pin55_GPIO_PF15_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
- /*Configure GPIO pins : PGPin PGPin PGPin PGPin
- PGPin PGPin PGPin */
- GPIO_InitStruct.Pin = OUT_Tilt_Test_Pin|OUT_SocketE_Drv_Pin|OUT_SocketE_Hold_Pin|OUT_Meter_Power_Pin
- |NoneUse_Pin126_GPIO_PG11_Pin|OUT_TrigLeakage_Pin|NoneUse_Pin128_GPIO_PG13_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- /*Configure GPIO pins : PGPin PGPin PGPin PGPin */
- GPIO_InitStruct.Pin = IN_GridType_Select_Pin|IN_BLE_DTR_Pin|IN_RFID_ICC_Pin|IN_USB_OC_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- /*Configure GPIO pins : PEPin PEPin PEPin PEPin */
- GPIO_InitStruct.Pin = IN_AC_Current_Set4_Pin|IN_AC_Current_Set3_Pin|IN_AC_Current_Set2_Pin|IN_AC_Current_Set1_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : PEPin PEPin PEPin */
- GPIO_InitStruct.Pin = OUT_SPI1_CS_Pin|OUT_StateE_Pin|OUT_LED_Breathe_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : PBPin PBPin */
- GPIO_InitStruct.Pin = IN_Relay_b_Contact_Pin|IN_GFCI_Reset_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = OUT_Speaker_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(OUT_Speaker_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : PDPin PDPin */
- GPIO_InitStruct.Pin = IN_Emergency_Pin|IN_BTN_ModeSw_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = IN_SocketE_Detect_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- #ifdef MODIFY_SOCKET_E_DETECT_PIN
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- #else
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- #endif
- HAL_GPIO_Init(IN_SocketE_Detect_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : PDPin PDPin PDPin PDPin
- PDPin */
- GPIO_InitStruct.Pin = NoneUse_Pin86_GPIO_PD15_Pin|NoneUse_Pin114_GPIO_PD0_Pin|NoneUse_Pin115_GPIO_PD1_Pin|OUT_USB_DriveBus_Pin
- |OUT_Meter_485_DE_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- /*Configure GPIO pins : PGPin PGPin PGPin */
- GPIO_InitStruct.Pin = OUT_BLE_DSR_Pin|OUT_RFID_Reset_Pin|LIN_PWM_SW_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
- /*Configure GPIO pins : PCPin PCPin PCPin */
- GPIO_InitStruct.Pin = IN_Leak_Error_Pin|IN_Leak_AC_Pin|IN_Leak_DC_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = IN_1998_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(IN_1998_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pin : PtPin */
- GPIO_InitStruct.Pin = IN_CCS_Proximity_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- //#ifdef FUNC_TEST_SET_CSU_MOUNT_PIN_NOPULL
- // GPIO_InitStruct.Pull = GPIO_NOPULL;
- //#else
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- //#endif
- HAL_GPIO_Init(IN_CCS_Proximity_GPIO_Port, &GPIO_InitStruct);
- #ifndef FUNC_ENABLE_USART1_RFID
- /*Configure GPIO pins : PB6 PB7 */
- GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- #endif
- }
- /* USER CODE BEGIN 2 */
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- {
- #ifdef DISABLE_METER_IC_IRQ_INTERRUPT
- return;
- #else
- switch(GPIO_Pin)
- {
- case GPIO_PIN_4:
- /*
- TODO:
- 1. Meter IC IRQ0 interrupt
- */
- DEBUG_INFO("Meter IC IRQ0 interrupt...\r\n");
- break;
- case GPIO_PIN_5:
- /*
- TODO:
- 1. Meter IC IRQ1 interrupt
- */
- DEBUG_INFO("Meter IC IRQ1 interrupt...\r\n");
- break;
- default:
- break;
- }
- #endif
- }
- void Relay_Action_Set(uint8_t action)
- {
- switch(action)
- {
- case GPIO_RELAY1_ACTION_ON:
- RELAY1_SET_DRIV(1);
- RELAY1_SET_HOLD(0);
- DEBUG_INFO("#Relay-1 ON.\r\n");
- timerEnable(TIMER_IDX_RELAY_1, 100);
- //HAL_Delay(1);
- break;
- case GPIO_RELAY1_ACTION_HOLD:
- //#ifndef TEST_RELAY_DRIVE_WITHOUT_HOLD
- RELAY1_SET_HOLD(1);
- RELAY1_SET_DRIV(0);
- DEBUG_INFO("#Relay-1 Hold.\r\n");
- //#endif
- break;
- case GPIO_RELAY2_ACTION_ON:
- RELAY2_SET_DRIV(1);
- RELAY2_SET_HOLD(0);
- DEBUG_INFO("#Relay-2 ON.\r\n");
- timerEnable(TIMER_IDX_RELAY_2, 100);
- //HAL_Delay(1);
- break;
- case GPIO_RELAY2_ACTION_HOLD:
- //#ifndef TEST_RELAY_DRIVE_WITHOUT_HOLD
- RELAY2_SET_HOLD(1);
- RELAY2_SET_DRIV(0);
- DEBUG_INFO("#Relay-2 hold.\r\n");
- //#endif
- break;
- case GPIO_RELAY1_ACTION_OFF:
- RELAY1_SET_DRIV(0);
- RELAY1_SET_HOLD(0);
- DEBUG_INFO("#Relay-1 OFF.\r\n");
- break;
- case GPIO_RELAY2_ACTION_OFF:
- RELAY2_SET_DRIV(0);
- RELAY2_SET_HOLD(0);
- DEBUG_INFO("#Relay-2 OFF.\r\n");
- break;
- default:
- RELAY1_SET_DRIV(0);
- RELAY1_SET_HOLD(0);
- RELAY2_SET_DRIV(0);
- RELAY2_SET_HOLD(0);
- break;
- }
- }
- uint8_t Relay1_Action_Get(void)
- {
- uint8_t result = GPIO_RELAY1_ACTION_UNKNOW;
- if((RELAY1_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY1_GET_HOLD == GPIO_PIN_RESET))
- {
- result = GPIO_RELAY1_ACTION_OFF;
- }
- else if((RELAY1_GET_DRIV == GPIO_PIN_SET) &&
- (RELAY1_GET_HOLD == GPIO_PIN_RESET))
- {
- result = GPIO_RELAY1_ACTION_ON;
- }
- else if((RELAY1_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY1_GET_HOLD == GPIO_PIN_SET))
- {
- result = GPIO_RELAY1_ACTION_HOLD;
- }
- return result;
- }
- uint8_t Relay2_Action_Get(void)
- {
- uint8_t result = GPIO_RELAY2_ACTION_UNKNOW;
- if((RELAY2_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY2_GET_HOLD == GPIO_PIN_RESET))
- {
- result = GPIO_RELAY2_ACTION_OFF;
- }
- else if((RELAY2_GET_DRIV == GPIO_PIN_SET) &&
- (RELAY2_GET_HOLD == GPIO_PIN_RESET))
- {
- result = GPIO_RELAY2_ACTION_ON;
- }
- else if((RELAY2_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY2_GET_HOLD == GPIO_PIN_SET))
- {
- result = GPIO_RELAY2_ACTION_HOLD;
- }
- return result;
- }
- #ifdef FUNC_OUTP_TYPE_E
- void SE_Relay_Action_Set(uint8_t action)
- {
- switch(action)
- {
- case GPIO_SE_RELAY1_ACTION_ON:
- RELAY_SE_SET_DRIV(1);
- RELAY_SE_SET_HOLD(0);
- DEBUG_INFO("SocketE Relay-1 ON.\r\n");
- timerEnable(TIMER_IDX_SE_RELAY_1, 100);
- //HAL_Delay(1);
- break;
- case GPIO_SE_RELAY1_ACTION_HOLD:
- //#ifndef TEST_RELAY_DRIVE_WITHOUT_HOLD
- RELAY_SE_SET_HOLD(1);
- RELAY_SE_SET_DRIV(0);
- DEBUG_INFO("SocketE Relay-1 Hold.\r\n");
- //#endif
- break;
- case GPIO_SE_RELAY1_ACTION_OFF:
- RELAY_SE_SET_DRIV(0);
- RELAY_SE_SET_HOLD(0);
- DEBUG_INFO("SocketE Relay-1 OFF.\r\n");
- break;
- default:
- RELAY_SE_SET_DRIV(0);
- RELAY_SE_SET_HOLD(0);
- break;
- }
- }
- uint8_t SE_Relay1_Action_Get(void)
- {
- uint8_t result = GPIO_SE_RELAY1_ACTION_UNKNOW;
- if((RELAY_SE_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY_SE_GET_HOLD == GPIO_PIN_RESET) )
- {
- result = GPIO_SE_RELAY_ACTION_OFF;
- }
- else if((RELAY_SE_GET_DRIV == GPIO_PIN_SET) &&
- (RELAY_SE_GET_HOLD == GPIO_PIN_RESET))
- {
- result = GPIO_SE_RELAY_ACTION_ON;
- }
- else if((RELAY_SE_GET_DRIV == GPIO_PIN_RESET) &&
- (RELAY_SE_GET_HOLD == GPIO_PIN_SET))
- {
- result = GPIO_SE_RELAY_ACTION_HOLD;
- }
- return result;
- }
- #endif //FUNC_OUTP_TYPE_E
- //--------------------------------------------------------------------------------
- void getGridTypeSwitchSetting(void) // check Grounding System is LL or LN
- {
- #ifdef ROTATE_SWITCH_HARDCODE
- Charger.GroundingSystem = (HC_SWITCH_1_CONN_TYPE_VAL ? 0 : 1);
- #else
- Charger.GroundingSystem = (HAL_GPIO_ReadPin(IN_GridType_Select_GPIO_Port, IN_GridType_Select_Pin) ? 0 : 1);
- #endif
- if (Charger.GroundingSystem == GROUNGING_SYSTEM_LL)
- {
- DEBUG_INFO("Grounding System is set L-L (0)\r\n"); //Switch-OFF(0)
- }
- else
- {
- DEBUG_INFO("Grounding System is set L-N (1)\r\n"); //Switch-ON(1)
- }
- #ifdef ROTATE_SWITCH_HARDCODE
- Charger.GroundingDetect = (HC_SWITCH_2_GROUND_SYS ? 1 : 0);
- #else
- Charger.GroundingDetect = (HAL_GPIO_ReadPin(IN_Grid_Groundding_GPIO_Port, IN_Grid_Groundding_Pin) ? 1 : 0);
- #endif
- if (Charger.GroundingDetect == ON)
- {
- DEBUG_INFO("Grounding Detect ON (0: TT-TN)\r\n"); //Switch-OFF(0)
- }
- else
- {
- DEBUG_INFO("Grounding Detect OFF (1: IT)\r\n"); //Switch-ON(1)
- }
- }
- /* USER CODE END 2 */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|