power12V_driver.c 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "power12V_driver.h"
  2. FlagStatus SwitchOnFlag; //开关打开标志,初始化为关闭标志
  3. //12V驱动IO初始化
  4. void Power12V_Driver_Init(void)
  5. {
  6. GPIO_InitTypeDef GPIO_InitStruct;
  7. __HAL_RCC_GPIOA_CLK_ENABLE();
  8. /*Configure GPIO pin Output Level */
  9. HAL_GPIO_WritePin(POWER12V_EN_GPIO_Port, POWER12V_EN_Pin, GPIO_PIN_RESET);
  10. /*Configure GPIO pin : PtPin */
  11. GPIO_InitStruct.Pin = POWER12V_EN_Pin;
  12. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  13. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  14. HAL_GPIO_Init(POWER12V_EN_GPIO_Port, &GPIO_InitStruct);
  15. SwitchOnFlag = RESET; //初始化为关闭标志
  16. }
  17. //12V驱动IO设置处理
  18. void Power12V_Driver_Process(FlagStatus SwitchStatus)
  19. {
  20. if(SwitchStatus == SET)
  21. {
  22. if(SwitchOnFlag == RESET)
  23. {
  24. //打开12V驱动电源
  25. HAL_GPIO_WritePin(POWER12V_EN_GPIO_Port, POWER12V_EN_Pin, GPIO_PIN_SET);
  26. SwitchOnFlag = SET;
  27. }
  28. }
  29. else if(SwitchStatus == RESET)
  30. {
  31. if(SwitchOnFlag == SET)
  32. {
  33. //关闭12V驱动电源
  34. HAL_GPIO_WritePin(POWER12V_EN_GPIO_Port, POWER12V_EN_Pin, GPIO_PIN_RESET);
  35. SwitchOnFlag = RESET;
  36. }
  37. }
  38. }