Sn74lvc573.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 "gd32f30x_libopt.h"
  12. static void Config74LvcGPIO(void);
  13. #define LOCK_OE GPIO_PIN_11
  14. #define LOCK_LE GPIO_PIN_12
  15. static void Config74LvcGPIO(void)
  16. {
  17. #if 1
  18. rcu_periph_clock_enable(RCU_AF);
  19. gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE);
  20. rcu_periph_clock_enable(RCU_GPIOA);
  21. //rcu_periph_clock_enable(RCU_GPIOB);
  22. gpio_init(GPIOA,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,LOCK_OE);
  23. gpio_init(GPIOA,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,LOCK_LE);
  24. gpio_bit_reset(GPIOA, LOCK_OE);
  25. gpio_bit_reset(GPIOA, LOCK_LE);
  26. #endif
  27. }
  28. void Init74Lvc(void)
  29. {
  30. Config74LvcGPIO();
  31. }
  32. void lock(void)
  33. {
  34. gpio_bit_set(GPIOA, LOCK_LE);
  35. }
  36. void unlock(void)
  37. {
  38. gpio_bit_reset(GPIOA, LOCK_LE);
  39. }