ch32v30x_bkp.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /********************************** (C) COPYRIGHT *******************************
  2. * File Name : ch32v30x_bkp.h
  3. * Author : WCH
  4. * Version : V1.0.0
  5. * Date : 2021/06/06
  6. * Description : This file contains all the functions prototypes for the
  7. * BKP firmware library.
  8. *********************************************************************************
  9. * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
  10. * Attention: This software (modified or not) and binary are used for
  11. * microcontroller manufactured by Nanjing Qinheng Microelectronics.
  12. *******************************************************************************/
  13. #ifndef __CH32V30x_BKP_H
  14. #define __CH32V30x_BKP_H
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #include "ch32v30x.h"
  19. /* Tamper_Pin_active_level */
  20. #define BKP_TamperPinLevel_High ((uint16_t)0x0000)
  21. #define BKP_TamperPinLevel_Low ((uint16_t)0x0001)
  22. /* RTC_output_source_to_output_on_the_Tamper_pin */
  23. #define BKP_RTCOutputSource_None ((uint16_t)0x0000)
  24. #define BKP_RTCOutputSource_CalibClock ((uint16_t)0x0080)
  25. #define BKP_RTCOutputSource_Alarm ((uint16_t)0x0100)
  26. #define BKP_RTCOutputSource_Second ((uint16_t)0x0300)
  27. /* Data_Backup_Register */
  28. #define BKP_DR1 ((uint16_t)0x0004)
  29. #define BKP_DR2 ((uint16_t)0x0008)
  30. #define BKP_DR3 ((uint16_t)0x000C)
  31. #define BKP_DR4 ((uint16_t)0x0010)
  32. #define BKP_DR5 ((uint16_t)0x0014)
  33. #define BKP_DR6 ((uint16_t)0x0018)
  34. #define BKP_DR7 ((uint16_t)0x001C)
  35. #define BKP_DR8 ((uint16_t)0x0020)
  36. #define BKP_DR9 ((uint16_t)0x0024)
  37. #define BKP_DR10 ((uint16_t)0x0028)
  38. #define BKP_DR11 ((uint16_t)0x0040)
  39. #define BKP_DR12 ((uint16_t)0x0044)
  40. #define BKP_DR13 ((uint16_t)0x0048)
  41. #define BKP_DR14 ((uint16_t)0x004C)
  42. #define BKP_DR15 ((uint16_t)0x0050)
  43. #define BKP_DR16 ((uint16_t)0x0054)
  44. #define BKP_DR17 ((uint16_t)0x0058)
  45. #define BKP_DR18 ((uint16_t)0x005C)
  46. #define BKP_DR19 ((uint16_t)0x0060)
  47. #define BKP_DR20 ((uint16_t)0x0064)
  48. #define BKP_DR21 ((uint16_t)0x0068)
  49. #define BKP_DR22 ((uint16_t)0x006C)
  50. #define BKP_DR23 ((uint16_t)0x0070)
  51. #define BKP_DR24 ((uint16_t)0x0074)
  52. #define BKP_DR25 ((uint16_t)0x0078)
  53. #define BKP_DR26 ((uint16_t)0x007C)
  54. #define BKP_DR27 ((uint16_t)0x0080)
  55. #define BKP_DR28 ((uint16_t)0x0084)
  56. #define BKP_DR29 ((uint16_t)0x0088)
  57. #define BKP_DR30 ((uint16_t)0x008C)
  58. #define BKP_DR31 ((uint16_t)0x0090)
  59. #define BKP_DR32 ((uint16_t)0x0094)
  60. #define BKP_DR33 ((uint16_t)0x0098)
  61. #define BKP_DR34 ((uint16_t)0x009C)
  62. #define BKP_DR35 ((uint16_t)0x00A0)
  63. #define BKP_DR36 ((uint16_t)0x00A4)
  64. #define BKP_DR37 ((uint16_t)0x00A8)
  65. #define BKP_DR38 ((uint16_t)0x00AC)
  66. #define BKP_DR39 ((uint16_t)0x00B0)
  67. #define BKP_DR40 ((uint16_t)0x00B4)
  68. #define BKP_DR41 ((uint16_t)0x00B8)
  69. #define BKP_DR42 ((uint16_t)0x00BC)
  70. void BKP_DeInit(void);
  71. void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel);
  72. void BKP_TamperPinCmd(FunctionalState NewState);
  73. void BKP_ITConfig(FunctionalState NewState);
  74. void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource);
  75. void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue);
  76. void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);
  77. uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);
  78. FlagStatus BKP_GetFlagStatus(void);
  79. void BKP_ClearFlag(void);
  80. ITStatus BKP_GetITStatus(void);
  81. void BKP_ClearITPendingBit(void);
  82. #ifdef __cplusplus
  83. }
  84. #endif
  85. #endif