Files

24 lines
693 B
C

#include "pwr_hold.h"
#include "gd32f4xx_rcu.h"
#include "gd32f4xx_gpio.h"
#include "board_config.h"
void pwr_hold_init(void) {
/* 使能 GPIO 时钟,推挽输出高(PMOS 导通,维持供电) */
rcu_periph_clock_enable(PWR_HOLD_RCU);
gpio_mode_set(PWR_HOLD_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, PWR_HOLD_PIN);
gpio_output_options_set(PWR_HOLD_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, PWR_HOLD_PIN);
gpio_bit_set(PWR_HOLD_PORT, PWR_HOLD_PIN);
}
void pwr_hold_on(void) {
gpio_bit_set(PWR_HOLD_PORT, PWR_HOLD_PIN);
}
void pwr_hold_off(void) {
/* 软关机:置低后系统失电 */
gpio_bit_reset(PWR_HOLD_PORT, PWR_HOLD_PIN);
while (1) {
}
}