lock.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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_GPIOF);
  19. gpio_mode_set(GPIOF, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6 | GPIO_PIN_7);
  20. gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6 | GPIO_PIN_7);
  21. gpio_bit_reset(GPIOF, GPIO_PIN_6);
  22. gpio_bit_set(GPIOF, GPIO_PIN_7);
  23. board->lock = lock;
  24. board->unlock = unlock;
  25. }
  26. static void lock(void)
  27. {
  28. gpio_bit_set(GPIOF, GPIO_PIN_7);
  29. }
  30. static void unlock(void)
  31. {
  32. gpio_bit_reset(GPIOF, GPIO_PIN_7);
  33. }