Sn74lvc573.c 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*********************************************************************************************************
  2. * 模块名称:Key.c
  3. * 摘 要:Key模块,进行独立按键初始化,以及按键扫描函数实现
  4. * 当前版本:1.0.0
  5. * 作 者:Leyutek(COPYRIGHT 2018 - 2021 Leyutek. All rights reserved.)
  6. * 完成日期:2021年07月01日
  7. * 内 容:
  8. * 注 意:
  9. **********************************************************************************************************
  10. * 取代版本:
  11. * 作 者:
  12. * 完成日期:
  13. * 修改内容:
  14. * 修改文件:
  15. *********************************************************************************************************/
  16. /*********************************************************************************************************
  17. * 包含头文件
  18. *********************************************************************************************************/
  19. #include "Sn74lvc573.h"
  20. #include "gd32e230x_conf.h"
  21. /*********************************************************************************************************
  22. * 宏定义
  23. *********************************************************************************************************/
  24. /*********************************************************************************************************
  25. * 枚举结构体
  26. *********************************************************************************************************/
  27. /*********************************************************************************************************
  28. * 内部变量定义
  29. *********************************************************************************************************/
  30. /*********************************************************************************************************
  31. * 内部函数声明
  32. *********************************************************************************************************/
  33. static void Config74LvcGPIO(void); //配置按键的GPIO
  34. /*********************************************************************************************************
  35. * 内部函数实现
  36. *********************************************************************************************************/
  37. /*********************************************************************************************************
  38. * 函数名称:ConfigKeyGPIO
  39. * 函数功能:配置按键的GPIO
  40. * 输入参数:void
  41. * 输出参数:void
  42. * 返 回 值:void
  43. * 创建日期:2021年07月01日
  44. * 注 意:
  45. *********************************************************************************************************/
  46. static void Config74LvcGPIO(void)
  47. {
  48. //使能RCU相关时钟
  49. rcu_periph_clock_enable(RCU_GPIOA); //使能GPIOA的时钟
  50. rcu_periph_clock_enable(RCU_GPIOB); //使能GPIOB的时钟
  51. gpio_mode_set(LOCK_OE_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LOCK_OE); //配置PA0为输出 控制573的使能
  52. gpio_output_options_set(LOCK_OE_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_OE); //设置GPIO输出模式及速度
  53. gpio_bit_reset(LOCK_OE_RCU, LOCK_OE); //将LOCK_OE默认状态设置为使能
  54. gpio_mode_set(LOCK_LE_CH_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LOCK_LE); //配置PB14为输出,输出低电平则保持缓存
  55. gpio_output_options_set(LOCK_LE_CH_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LOCK_LE); //设置GPIO输出模式及速度
  56. LOCK;
  57. gpio_mode_set(LOCK_LE_CH_RCU, GPIO_MODE_INPUT, GPIO_PUPD_NONE, LOCK_CHECK); //配置PB12为上拉输入,检测有下载器接入
  58. }
  59. /*********************************************************************************************************
  60. * API函数实现
  61. *********************************************************************************************************/
  62. /*********************************************************************************************************
  63. * 函数名称:InitKeyOne
  64. * 函数功能:初始化KeyOne模块
  65. * 输入参数:void
  66. * 输出参数:void
  67. * 返 回 值:void
  68. * 创建日期:2021年07月01日
  69. * 注 意:
  70. *********************************************************************************************************/
  71. void Init74Lvc(void)
  72. {
  73. Config74LvcGPIO(); //配置74LVC573的GPIO
  74. }