lock.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*********************************************************************************************************
  2. * Module : lock
  3. * Abstract :
  4. * Version : 1.0.0
  5. * Author : Leopul(COPYRIGHT 2025 ~ 2027 Leopul. All rights reserved.)
  6. * Complete : 2025-04-09
  7. * Content : None
  8. * Note : None
  9. *********************************************************************************************************/
  10. #include "lock.h"
  11. #include "gd32e23x.h"
  12. #include "common.h"
  13. static void lock(void);
  14. static void unlock(void);
  15. void lock_init(void)
  16. {
  17. board_t * board = get_board();
  18. rcu_periph_clock_enable(RCU_GPIOB);
  19. rcu_periph_clock_enable(RCU_GPIOA);
  20. gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_0);
  21. gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
  22. gpio_bit_reset(GPIOA, GPIO_PIN_0);
  23. gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_14);
  24. gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
  25. gpio_bit_reset(GPIOB, GPIO_PIN_14);
  26. gpio_bit_set(GPIOB, GPIO_PIN_14);
  27. board->lock = lock;
  28. board->unlock = unlock;
  29. }
  30. static void lock(void)
  31. {
  32. gpio_bit_set(GPIOB, GPIO_PIN_14);
  33. }
  34. static void unlock(void)
  35. {
  36. gpio_bit_reset(GPIOB, GPIO_PIN_14);
  37. }