/********************************************************************************************************* * Module : lock * Abstract : * Version : 1.0.0 * Author : Leopul(COPYRIGHT 2025 ~ 2027 Leopul. All rights reserved.) * Complete : 2025-04-09 * Content : None * Note : None *********************************************************************************************************/ #include "lock.h" #include "gd32e23x.h" #include "common.h" static void lock(void); static void unlock(void); void lock_init(void) { board_t * board = get_board(); rcu_periph_clock_enable(RCU_GPIOB); rcu_periph_clock_enable(RCU_GPIOA); gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_0); gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0); gpio_bit_reset(GPIOA, GPIO_PIN_0); gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_14); gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14); gpio_bit_reset(GPIOB, GPIO_PIN_14); gpio_bit_set(GPIOB, GPIO_PIN_14); board->lock = lock; board->unlock = unlock; } static void lock(void) { gpio_bit_set(GPIOB, GPIO_PIN_14); } static void unlock(void) { gpio_bit_reset(GPIOB, GPIO_PIN_14); }