Sn74hc573.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /*********************************************************************************************************
  2. * 模块名称:Sn74hc573.c
  3. * 摘 要:Key模块,进行独立按键初始化,以及按键扫描函数实现
  4. * 当前版本:1.0.0
  5. * 作 者:anycrying
  6. * 完成日期:2024年04月11日
  7. * 内 容:
  8. * 注 意:
  9. **********************************************************************************************************
  10. * 取代版本:
  11. * 作 者:
  12. * 完成日期:
  13. * 修改内容:
  14. * 修改文件:
  15. *********************************************************************************************************/
  16. /*********************************************************************************************************
  17. * 包含头文件
  18. *********************************************************************************************************/
  19. #include "Sn74hc573.h"
  20. #include "gd32e230x_conf.h"
  21. /*********************************************************************************************************
  22. * 宏定义
  23. *********************************************************************************************************/
  24. /*********************************************************************************************************
  25. * 枚举结构体
  26. *********************************************************************************************************/
  27. /*********************************************************************************************************
  28. * 内部变量定义
  29. *********************************************************************************************************/
  30. /*********************************************************************************************************
  31. * 内部函数声明
  32. *********************************************************************************************************/
  33. static void Config74hc573GPIO(void); //配置按键的GPIO
  34. /*********************************************************************************************************
  35. * 内部函数实现
  36. *********************************************************************************************************/
  37. /*********************************************************************************************************
  38. * 函数名称:Config74hc573GPIO
  39. * 函数功能:配置74hc573端口
  40. * 输入参数:void
  41. * 输出参数:void
  42. * 返 回 值:void
  43. * 创建日期:2024年04月11日
  44. * 注 意:
  45. *********************************************************************************************************/
  46. static void Config74hc573GPIO(void)
  47. {
  48. //使能RCU相关时钟
  49. rcu_periph_clock_enable(LOCK_74hc573_RCU); //使能GPIOF的时钟
  50. rcu_periph_clock_enable(LOCK_74hc573_RCU); //使能GPIOC的时钟
  51. gpio_mode_set(LOCK_74hc573_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, LOCK_74hc573_OE); //配置PF6为输出 控制573的使能
  52. gpio_output_options_set(LOCK_74hc573_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_74hc573_OE); //设置GPIO输出模式及速度
  53. gpio_bit_reset(LOCK_74hc573_IO, LOCK_74hc573_OE); //将LOCK_74hc573_OE默认状态设置为不使能
  54. gpio_mode_set(LOCK_74hc573_IO, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, LOCK_74hc573_LE); //配置PF7为输出,输出低电平则保持缓存
  55. gpio_output_options_set(LOCK_74hc573_IO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_74hc573_LE); //设置GPIO输出模式及速度
  56. BUFF_Data;
  57. gpio_mode_set(CHECK_JLINK_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, CHECK_JLINK_IN); //配置PC14为上拉输入,检测有下载器接入
  58. }
  59. /*********************************************************************************************************
  60. * API函数实现
  61. *********************************************************************************************************/
  62. /*********************************************************************************************************
  63. * 函数名称:Init_74hc573
  64. * 函数功能:初始化74hc573模块
  65. * 输入参数:void
  66. * 输出参数:void
  67. * 返 回 值:void
  68. * 创建日期:2024年04月11日
  69. * 注 意:
  70. *********************************************************************************************************/
  71. void Init_74hc573(void)
  72. {
  73. Config74hc573GPIO(); //配置74HC573的GPIO
  74. }
  75. /*********************************************************************************************************
  76. * 函数名称:Write_74hc573
  77. * 函数功能:锁存输出数据
  78. * 输入参数:void
  79. * 输出参数:void
  80. * 返 回 值:void
  81. * 创建日期:2024年04月11日
  82. * 注 意:
  83. *********************************************************************************************************/
  84. void Write_74hc573(void)
  85. {
  86. uint8_t i = 0;
  87. BUFF_Data;
  88. LOCK_Data;
  89. for(i = 0;i < 72;i++);
  90. BUFF_Data;
  91. }