gpio.c 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. /**
  2. ******************************************************************************
  3. * File Name : gpio.c
  4. * Description : This file provides code for the configuration
  5. * of all used GPIO pins.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under Ultimate Liberty license
  13. * SLA0044, the "License"; You may not use this file except in compliance with
  14. * the License. You may obtain a copy of the License at:
  15. * www.st.com/SLA0044
  16. *
  17. ******************************************************************************
  18. */
  19. /* Includes ------------------------------------------------------------------*/
  20. #include "gpio.h"
  21. /* USER CODE BEGIN 0 */
  22. #include "rtc.h"
  23. uint8_t is_Relay1_First;
  24. /* USER CODE END 0 */
  25. /*----------------------------------------------------------------------------*/
  26. /* Configure GPIO */
  27. /*----------------------------------------------------------------------------*/
  28. /* USER CODE BEGIN 1 */
  29. /* USER CODE END 1 */
  30. /** Configure pins as
  31. * Analog
  32. * Input
  33. * Output
  34. * EVENT_OUT
  35. * EXTI
  36. */
  37. void MX_GPIO_Init(void)
  38. {
  39. GPIO_InitTypeDef GPIO_InitStruct = {0};
  40. /* GPIO Ports Clock Enable */
  41. __HAL_RCC_GPIOE_CLK_ENABLE();
  42. __HAL_RCC_GPIOC_CLK_ENABLE();
  43. __HAL_RCC_GPIOF_CLK_ENABLE();
  44. __HAL_RCC_GPIOH_CLK_ENABLE();
  45. __HAL_RCC_GPIOA_CLK_ENABLE();
  46. __HAL_RCC_GPIOB_CLK_ENABLE();
  47. __HAL_RCC_GPIOG_CLK_ENABLE();
  48. __HAL_RCC_GPIOD_CLK_ENABLE();
  49. /*Configure GPIO pin Output Level */
  50. HAL_GPIO_WritePin(GPIOE, NoneUse_Pin1_GPIO_PE2_Pin|OUT_BLE_RESET_Pin|NoneUse_Pin3_GPIO_PE4_Pin|NoneUse_Pin66_GPIO_PE13_Pin
  51. |OUT_SPI1_CS_Pin|OUT_StateE_Pin|OUT_LED_Breathe_Pin, GPIO_PIN_RESET);
  52. /*Configure GPIO pin Output Level */
  53. HAL_GPIO_WritePin(GPIOC, OUT_PHY_Reset_Pin|NoneUse_Pin26_GPIO_PC0_Pin|NoneUse_Pin27_GPIO_PC1_Pin|NoneUse_Pin28_GPIO_PC2_Pin
  54. |NoneUse_Pin29_GPIO_PC3_Pin|NoneUse_Pin44_GPIO_PC4_Pin|NoneUse_Pin45_GPIO_PC5_Pin|OUT_RelayDrv_L1_Pin
  55. |OUT_1998_Pin|OUT_Meter_485_RE_Pin, GPIO_PIN_RESET);
  56. /*Configure GPIO pin Output Level */
  57. HAL_GPIO_WritePin(GPIOF, NoneUse_Pin19_GPIO_PF7_Pin|NoneUse_Pin20_GPIO_PF8_Pin|NoneUse_Pin22_GPIO_PF10_Pin|OUT_Locker_Lock_Pin, GPIO_PIN_RESET);
  58. /*Configure GPIO pin Output Level */
  59. HAL_GPIO_WritePin(GPIOA, NoneUse_Pin34_GPIO_PA0_Pin|NoneUse_Pin35_GPIO_PA1_Pin|NoneUse_Pin36_GPIO_PA2_Pin|NoneUse_Pin37_GPIO_PA3_Pin
  60. |NoneUse_Pin43_GPIO_PA7_Pin|OUT_RelayHold_L1_Pin|OUT_RelayDrv_L2_Pin|OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  61. /*Configure GPIO pin Output Level */
  62. HAL_GPIO_WritePin(GPIOB, NoneUse_Pin46_GPIO_PB0_Pin|NoneUse_Pin47_GPIO_PB1_Pin|NoneUse_Pin48_GPIO_PB2_Pin|NoneUse_Pin69_GPIO_PB10_Pin
  63. |NoneUse_Pin70_GPIO_PB11_Pin|NoneUse_Pin74_GPIO_PB13_Pin|OUT_Leak_Test_Pin, GPIO_PIN_RESET);
  64. /*Configure GPIO pin Output Level */
  65. HAL_GPIO_WritePin(GPIOD, OUT_Speaker_Pin|NoneUse_Pin82_GPIO_PD13_Pin|NoneUse_Pin85_GPIO_PD14_Pin|NoneUse_Pin86_GPIO_PD15_Pin
  66. |NoneUse_Pin114_GPIO_PD0_Pin|NoneUse_Pin115_GPIO_PD1_Pin|OUT_USB_DriveBus_Pin|OUT_Meter_485_DE_Pin, GPIO_PIN_RESET);
  67. /*Configure GPIO pin Output Level */
  68. HAL_GPIO_WritePin(GPIOG, OUT_BLE_DSR_Pin|NoneUse_Pin89_GPIO_PG4_Pin|NoneUse_Pin90_GPIO_PG5_Pin|NoneUse_Pin92_GPIO_PG7_Pin
  69. |OUT_RFID_Reset_Pin|NoneUse_Pin126_GPIO_PG11_Pin|OUT_IPP_TRI_Pin|NoneUse_Pin128_GPIO_PG13_Pin, GPIO_PIN_RESET);
  70. /*Configure GPIO pins : PEPin PEPin PEPin */
  71. GPIO_InitStruct.Pin = NoneUse_Pin1_GPIO_PE2_Pin|NoneUse_Pin3_GPIO_PE4_Pin|NoneUse_Pin66_GPIO_PE13_Pin;
  72. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  73. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  74. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  75. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  76. /*Configure GPIO pins : PEPin PEPin PEPin PEPin */
  77. GPIO_InitStruct.Pin = OUT_BLE_RESET_Pin|OUT_SPI1_CS_Pin|OUT_StateE_Pin|OUT_LED_Breathe_Pin;
  78. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  79. GPIO_InitStruct.Pull = GPIO_NOPULL;
  80. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  81. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  82. /*Configure GPIO pins : PCPin PCPin PCPin PCPin
  83. PCPin PCPin PCPin */
  84. GPIO_InitStruct.Pin = OUT_PHY_Reset_Pin|NoneUse_Pin26_GPIO_PC0_Pin|NoneUse_Pin27_GPIO_PC1_Pin|NoneUse_Pin28_GPIO_PC2_Pin
  85. |NoneUse_Pin29_GPIO_PC3_Pin|NoneUse_Pin44_GPIO_PC4_Pin|NoneUse_Pin45_GPIO_PC5_Pin;
  86. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  87. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  88. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  89. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  90. /*Configure GPIO pins : PFPin PFPin PFPin PFPin
  91. PFPin */
  92. GPIO_InitStruct.Pin = IN_MEM_Erase_Pin|IN_LOCK_Status_Pin|IN_CCS_HW_ID1_Pin|IN_CCS_HW_ID2_Pin
  93. |IN_CCS_I_O1_Pin;
  94. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  95. GPIO_InitStruct.Pull = GPIO_NOPULL;
  96. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  97. /*Configure GPIO pins : PFPin PFPin PFPin */
  98. GPIO_InitStruct.Pin = NoneUse_Pin19_GPIO_PF7_Pin|NoneUse_Pin20_GPIO_PF8_Pin|NoneUse_Pin22_GPIO_PF10_Pin;
  99. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  100. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  101. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  102. HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
  103. /*Configure GPIO pins : PAPin PAPin PAPin PAPin
  104. PAPin */
  105. GPIO_InitStruct.Pin = NoneUse_Pin34_GPIO_PA0_Pin|NoneUse_Pin35_GPIO_PA1_Pin|NoneUse_Pin36_GPIO_PA2_Pin|NoneUse_Pin37_GPIO_PA3_Pin
  106. |NoneUse_Pin43_GPIO_PA7_Pin;
  107. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  108. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  109. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  110. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  111. /*Configure GPIO pins : PBPin PBPin PBPin */
  112. GPIO_InitStruct.Pin = NoneUse_Pin46_GPIO_PB0_Pin|NoneUse_Pin47_GPIO_PB1_Pin|OUT_Leak_Test_Pin;
  113. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  114. GPIO_InitStruct.Pull = GPIO_NOPULL;
  115. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  116. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  117. /*Configure GPIO pins : PBPin PBPin */
  118. GPIO_InitStruct.Pin = NoneUse_Pin48_GPIO_PB2_Pin|NoneUse_Pin70_GPIO_PB11_Pin;
  119. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  120. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  121. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  122. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  123. /*Configure GPIO pin : PtPin */
  124. GPIO_InitStruct.Pin = OUT_Locker_Lock_Pin;
  125. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  126. GPIO_InitStruct.Pull = GPIO_NOPULL;
  127. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  128. HAL_GPIO_Init(OUT_Locker_Lock_GPIO_Port, &GPIO_InitStruct);
  129. /*Configure GPIO pins : PGPin PGPin PGPin PGPin
  130. PGPin PGPin */
  131. GPIO_InitStruct.Pin = IN_CCS_I_O2_Pin|IN_GridType_Select_Pin|IN_BLE_DTR_Pin|IN_RFID_ICC_Pin
  132. |IN_USB_OC_Pin|IN_Shutter_Status_Pin;
  133. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  134. GPIO_InitStruct.Pull = GPIO_NOPULL;
  135. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  136. /*Configure GPIO pins : PEPin PEPin PEPin PEPin
  137. PEPin PEPin */
  138. GPIO_InitStruct.Pin = IN_Grid_Groundding_Pin|IN_AC_Current_Set4_Pin|IN_AC_Current_Set3_Pin|IN_AC_Current_Set2_Pin
  139. |IN_AC_Current_Set1_Pin|IN_CCS_Proximity_Pin;
  140. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  141. GPIO_InitStruct.Pull = GPIO_NOPULL;
  142. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  143. /*Configure GPIO pins : PBPin PBPin */
  144. GPIO_InitStruct.Pin = NoneUse_Pin69_GPIO_PB10_Pin|NoneUse_Pin74_GPIO_PB13_Pin;
  145. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  146. GPIO_InitStruct.Pull = GPIO_PULLUP;
  147. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  148. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  149. /*Configure GPIO pin : PtPin */
  150. GPIO_InitStruct.Pin = IN_GFCI_Reset_Pin;
  151. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  152. GPIO_InitStruct.Pull = GPIO_NOPULL;
  153. HAL_GPIO_Init(IN_GFCI_Reset_GPIO_Port, &GPIO_InitStruct);
  154. /*Configure GPIO pins : PDPin PDPin PDPin */
  155. GPIO_InitStruct.Pin = OUT_Speaker_Pin|OUT_USB_DriveBus_Pin|OUT_Meter_485_DE_Pin;
  156. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  157. GPIO_InitStruct.Pull = GPIO_NOPULL;
  158. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  159. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  160. /*Configure GPIO pin : PtPin */
  161. GPIO_InitStruct.Pin = IN_Emergency_Pin;
  162. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  163. GPIO_InitStruct.Pull = GPIO_NOPULL;
  164. HAL_GPIO_Init(IN_Emergency_GPIO_Port, &GPIO_InitStruct);
  165. /*Configure GPIO pins : PDPin PDPin PDPin PDPin
  166. PDPin */
  167. GPIO_InitStruct.Pin = NoneUse_Pin82_GPIO_PD13_Pin|NoneUse_Pin85_GPIO_PD14_Pin|NoneUse_Pin86_GPIO_PD15_Pin|NoneUse_Pin114_GPIO_PD0_Pin
  168. |NoneUse_Pin115_GPIO_PD1_Pin;
  169. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  170. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  171. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  172. HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
  173. /*Configure GPIO pins : PGPin PGPin PGPin */
  174. GPIO_InitStruct.Pin = OUT_BLE_DSR_Pin|OUT_RFID_Reset_Pin|OUT_IPP_TRI_Pin;
  175. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  176. GPIO_InitStruct.Pull = GPIO_NOPULL;
  177. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  178. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  179. /*Configure GPIO pins : PGPin PGPin PGPin PGPin
  180. PGPin */
  181. GPIO_InitStruct.Pin = NoneUse_Pin89_GPIO_PG4_Pin|NoneUse_Pin90_GPIO_PG5_Pin|NoneUse_Pin92_GPIO_PG7_Pin|NoneUse_Pin126_GPIO_PG11_Pin
  182. |NoneUse_Pin128_GPIO_PG13_Pin;
  183. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  184. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  185. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  186. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  187. /*Configure GPIO pins : PCPin PCPin PCPin */
  188. GPIO_InitStruct.Pin = IN_Leak_Error_Pin|IN_Leak_AC_Pin|IN_Leak_DC_Pin;
  189. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  190. GPIO_InitStruct.Pull = GPIO_NOPULL;
  191. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  192. /*Configure GPIO pins : PCPin PCPin PCPin */
  193. GPIO_InitStruct.Pin = OUT_RelayDrv_L1_Pin|OUT_1998_Pin|OUT_Meter_485_RE_Pin;
  194. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  195. GPIO_InitStruct.Pull = GPIO_NOPULL;
  196. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  197. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  198. /*Configure GPIO pins : PAPin PAPin PAPin */
  199. GPIO_InitStruct.Pin = OUT_RelayHold_L1_Pin|OUT_RelayDrv_L2_Pin|OUT_RelayHold_L2_Pin;
  200. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  201. GPIO_InitStruct.Pull = GPIO_NOPULL;
  202. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  203. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  204. /*Configure GPIO pin : PtPin */
  205. GPIO_InitStruct.Pin = IN_1998_Pin;
  206. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  207. GPIO_InitStruct.Pull = GPIO_NOPULL;
  208. HAL_GPIO_Init(IN_1998_GPIO_Port, &GPIO_InitStruct);
  209. /*Configure GPIO pin : PtPin */
  210. GPIO_InitStruct.Pin = IN_ACT_REQ_Pin;
  211. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  212. GPIO_InitStruct.Pull = GPIO_PULLUP;
  213. HAL_GPIO_Init(IN_ACT_REQ_GPIO_Port, &GPIO_InitStruct);
  214. }
  215. /* USER CODE BEGIN 2 */
  216. void Relay_Action_Set(uint8_t action)
  217. {
  218. switch(action)
  219. {
  220. case GPIO_RELAY1_ACTION_ON:
  221. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_SET);
  222. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_RESET);
  223. DEBUG_INFO("Relay-1 ON.\r\n");
  224. timerEnable(TIMER_IDX_RELAY_1, 100);
  225. //HAL_Delay(1);
  226. break;
  227. case GPIO_RELAY1_ACTION_HOLD:
  228. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_SET);
  229. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_RESET);
  230. DEBUG_INFO("Relay-1 Hold.\r\n");
  231. break;
  232. case GPIO_RELAY2_ACTION_ON:
  233. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_SET);
  234. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  235. DEBUG_INFO("Relay-2 ON.\r\n");
  236. timerEnable(TIMER_IDX_RELAY_2, 100);
  237. //HAL_Delay(1);
  238. break;
  239. case GPIO_RELAY2_ACTION_HOLD:
  240. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_SET);
  241. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_RESET);
  242. DEBUG_INFO("Relay-2 hold.\r\n");
  243. break;
  244. case GPIO_RELAY1_ACTION_OFF:
  245. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_RESET);
  246. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_RESET);
  247. DEBUG_INFO("Relay-1 OFF.\r\n");
  248. break;
  249. case GPIO_RELAY2_ACTION_OFF:
  250. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_RESET);
  251. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  252. DEBUG_INFO("Relay-2 OFF.\r\n");
  253. break;
  254. default:
  255. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_RESET);
  256. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_RESET);
  257. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_RESET);
  258. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  259. break;
  260. }
  261. /*switch(action)
  262. {
  263. case GPIO_RELAY_ACTION_ON:
  264. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_SET);
  265. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_RESET);
  266. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_SET);
  267. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  268. HAL_Delay(100);
  269. break;
  270. case GPIO_RELAY_ACTION_HOLD:
  271. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_SET);
  272. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_RESET);
  273. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_SET);
  274. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_RESET);
  275. break;
  276. case GPIO_RELAY_ACTION_OFF:
  277. default:
  278. HAL_GPIO_WritePin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin, GPIO_PIN_RESET);
  279. HAL_GPIO_WritePin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin, GPIO_PIN_RESET);
  280. HAL_GPIO_WritePin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin, GPIO_PIN_RESET);
  281. HAL_GPIO_WritePin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin, GPIO_PIN_RESET);
  282. break;
  283. }*/
  284. }
  285. /*uint8_t Relay_Action_Get(void)
  286. {
  287. uint8_t result = GPIO_RELAY_ACTION_UNKNOW;
  288. if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_RESET) &&
  289. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_RESET) &&
  290. (HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_RESET) &&
  291. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_RESET) )
  292. {
  293. result = GPIO_RELAY_ACTION_OFF;
  294. }
  295. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_SET) &&
  296. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_RESET) &&
  297. (HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_SET) &&
  298. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_RESET) )
  299. {
  300. result = GPIO_RELAY_ACTION_ON;
  301. }
  302. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_RESET) &&
  303. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_SET) &&
  304. (HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_RESET) &&
  305. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_SET) )
  306. {
  307. result = GPIO_RELAY_ACTION_HOLD;
  308. }
  309. return result;
  310. }*/
  311. uint8_t Relay1_Action_Get(void)
  312. {
  313. uint8_t result = GPIO_RELAY1_ACTION_UNKNOW;
  314. if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_RESET) &&
  315. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_RESET) )
  316. {
  317. result = GPIO_RELAY1_ACTION_OFF;
  318. }
  319. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_SET) &&
  320. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_RESET) )
  321. {
  322. result = GPIO_RELAY1_ACTION_ON;
  323. }
  324. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L1_GPIO_Port, OUT_RelayDrv_L1_Pin) == GPIO_PIN_RESET) &&
  325. (HAL_GPIO_ReadPin(OUT_RelayHold_L1_GPIO_Port, OUT_RelayHold_L1_Pin) == GPIO_PIN_SET) )
  326. {
  327. result = GPIO_RELAY1_ACTION_HOLD;
  328. }
  329. return result;
  330. }
  331. uint8_t Relay2_Action_Get(void)
  332. {
  333. uint8_t result = GPIO_RELAY2_ACTION_UNKNOW;
  334. if((HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_RESET) &&
  335. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_RESET) )
  336. {
  337. result = GPIO_RELAY2_ACTION_OFF;
  338. }
  339. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_SET) &&
  340. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_RESET) )
  341. {
  342. result = GPIO_RELAY2_ACTION_ON;
  343. }
  344. else if((HAL_GPIO_ReadPin(OUT_RelayDrv_L2_GPIO_Port, OUT_RelayDrv_L2_Pin) == GPIO_PIN_RESET) &&
  345. (HAL_GPIO_ReadPin(OUT_RelayHold_L2_GPIO_Port, OUT_RelayHold_L2_Pin) == GPIO_PIN_SET) )
  346. {
  347. result = GPIO_RELAY2_ACTION_HOLD;
  348. }
  349. return result;
  350. }
  351. //--------------------------------------------------------------------------------
  352. void getGridTypeSwitchSetting(void) // check Grounding System is LL or LN
  353. {
  354. Charger.GroundingSystem = (HAL_GPIO_ReadPin(IN_GridType_Select_GPIO_Port, IN_GridType_Select_Pin)?0:1) ;
  355. if (Charger.GroundingSystem == GROUNGING_SYSTEM_LL)
  356. {
  357. DEBUG_INFO("Grounding System is set L-L (0)\r\n"); //Switch-OFF(0)
  358. }
  359. else
  360. {
  361. DEBUG_INFO("Grounding System is set L-N (1)\r\n"); //Switch-ON(1)
  362. }
  363. Charger.GroundingDetect = (HAL_GPIO_ReadPin(IN_Grid_Groundding_GPIO_Port, IN_Grid_Groundding_Pin) ? 1 : 0);
  364. if (Charger.GroundingDetect == ON)
  365. {
  366. DEBUG_INFO("Grounding Detect ON (0: TT-TN)\r\n"); //Switch-OFF(0)
  367. }
  368. else
  369. {
  370. DEBUG_INFO("Grounding Detect OFF (1: IT)\r\n"); //Switch-ON(1)
  371. }
  372. }
  373. /* USER CODE END 2 */
  374. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/