Sn74lvc573.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*********************************************************************************************************
  2. * Module : Sn74lvc573.c
  3. * Abstract : Sn74lvc573 modules,used to relay locked or unlock IO !
  4. * Version : 1.0.0
  5. * Author : Leopul(COPYRIGHT 2025 - 2027 Leopul. All rights reserved.)
  6. * Complete : 2025-02-16
  7. * Content : None
  8. * Note : None
  9. *********************************************************************************************************/
  10. #include "Sn74lvc573.h"
  11. #include "gd32e230x_conf.h"
  12. static void Config74LvcGPIO(void);
  13. #define LOCK_OE GPIO_PIN_15
  14. #define LOCK_LE GPIO_PIN_5
  15. #define LOCK_CHECK GPIO_PIN_14
  16. static void Config74LvcGPIO(void)
  17. {
  18. rcu_periph_clock_enable(RCU_GPIOA);
  19. rcu_periph_clock_enable(RCU_GPIOB);
  20. gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LOCK_OE);
  21. gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_OE);
  22. gpio_bit_reset(GPIOA, LOCK_OE);
  23. gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LOCK_LE);
  24. gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_LE);
  25. gpio_mode_set(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_NONE, LOCK_CHECK);
  26. }
  27. void Init74Lvc(void)
  28. {
  29. Config74LvcGPIO();
  30. }
  31. void lock(void)
  32. {
  33. gpio_bit_set(GPIOB, LOCK_LE);
  34. }
  35. void unlock(void)
  36. {
  37. gpio_bit_reset(GPIOB, LOCK_LE);
  38. }