1 /* Define to prevent recursive inclusion -------------------------------------*/ 2 #ifndef __AIR32F10x_BKP_H 3 #define __AIR32F10x_BKP_H 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 /* Includes ------------------------------------------------------------------*/ 10 #include "air32f10x.h" 11 12 /** @addtogroup air32f10x_StdPeriph_Driver 13 * @{ 14 */ 15 16 /** @addtogroup BKP 17 * @{ 18 */ 19 20 /** @defgroup BKP_Exported_Types 21 * @{ 22 */ 23 24 /** 25 * @} 26 */ 27 28 /** @defgroup BKP_Exported_Constants 29 * @{ 30 */ 31 32 /** @defgroup Tamper_Pin_active_level 33 * @{ 34 */ 35 36 #define BKP_TamperPinLevel_High ((uint16_t)0x0000) 37 #define BKP_TamperPinLevel_Low ((uint16_t)0x0001) 38 #define IS_BKP_TAMPER_PIN_LEVEL(LEVEL) (((LEVEL) == BKP_TamperPinLevel_High) || \ 39 ((LEVEL) == BKP_TamperPinLevel_Low)) 40 /** 41 * @} 42 */ 43 44 /** @defgroup RTC_output_source_to_output_on_the_Tamper_pin 45 * @{ 46 */ 47 48 #define BKP_RTCOutputSource_None ((uint16_t)0x0000) 49 #define BKP_RTCOutputSource_CalibClock ((uint16_t)0x0080) 50 #define BKP_RTCOutputSource_Alarm ((uint16_t)0x0100) 51 #define BKP_RTCOutputSource_Second ((uint16_t)0x0300) 52 #define IS_BKP_RTC_OUTPUT_SOURCE(SOURCE) (((SOURCE) == BKP_RTCOutputSource_None) || \ 53 ((SOURCE) == BKP_RTCOutputSource_CalibClock) || \ 54 ((SOURCE) == BKP_RTCOutputSource_Alarm) || \ 55 ((SOURCE) == BKP_RTCOutputSource_Second)) 56 /** 57 * @} 58 */ 59 60 /** @defgroup Data_Backup_Register 61 * @{ 62 */ 63 64 #define BKP_DR1 ((uint16_t)0x0004) 65 #define BKP_DR2 ((uint16_t)0x0008) 66 #define BKP_DR3 ((uint16_t)0x000C) 67 #define BKP_DR4 ((uint16_t)0x0010) 68 #define BKP_DR5 ((uint16_t)0x0014) 69 #define BKP_DR6 ((uint16_t)0x0018) 70 #define BKP_DR7 ((uint16_t)0x001C) 71 #define BKP_DR8 ((uint16_t)0x0020) 72 #define BKP_DR9 ((uint16_t)0x0024) 73 #define BKP_DR10 ((uint16_t)0x0028) 74 #define BKP_DR11 ((uint16_t)0x0040) 75 #define BKP_DR12 ((uint16_t)0x0044) 76 #define BKP_DR13 ((uint16_t)0x0048) 77 #define BKP_DR14 ((uint16_t)0x004C) 78 #define BKP_DR15 ((uint16_t)0x0050) 79 #define BKP_DR16 ((uint16_t)0x0054) 80 #define BKP_DR17 ((uint16_t)0x0058) 81 #define BKP_DR18 ((uint16_t)0x005C) 82 #define BKP_DR19 ((uint16_t)0x0060) 83 #define BKP_DR20 ((uint16_t)0x0064) 84 #define BKP_DR21 ((uint16_t)0x0068) 85 #define BKP_DR22 ((uint16_t)0x006C) 86 #define BKP_DR23 ((uint16_t)0x0070) 87 #define BKP_DR24 ((uint16_t)0x0074) 88 #define BKP_DR25 ((uint16_t)0x0078) 89 #define BKP_DR26 ((uint16_t)0x007C) 90 #define BKP_DR27 ((uint16_t)0x0080) 91 #define BKP_DR28 ((uint16_t)0x0084) 92 #define BKP_DR29 ((uint16_t)0x0088) 93 #define BKP_DR30 ((uint16_t)0x008C) 94 #define BKP_DR31 ((uint16_t)0x0090) 95 #define BKP_DR32 ((uint16_t)0x0094) 96 #define BKP_DR33 ((uint16_t)0x0098) 97 #define BKP_DR34 ((uint16_t)0x009C) 98 #define BKP_DR35 ((uint16_t)0x00A0) 99 #define BKP_DR36 ((uint16_t)0x00A4) 100 #define BKP_DR37 ((uint16_t)0x00A8) 101 #define BKP_DR38 ((uint16_t)0x00AC) 102 #define BKP_DR39 ((uint16_t)0x00B0) 103 #define BKP_DR40 ((uint16_t)0x00B4) 104 #define BKP_DR41 ((uint16_t)0x00B8) 105 #define BKP_DR42 ((uint16_t)0x00BC) 106 107 #define IS_BKP_DR(DR) (((DR) == BKP_DR1) || ((DR) == BKP_DR2) || ((DR) == BKP_DR3) || \ 108 ((DR) == BKP_DR4) || ((DR) == BKP_DR5) || ((DR) == BKP_DR6) || \ 109 ((DR) == BKP_DR7) || ((DR) == BKP_DR8) || ((DR) == BKP_DR9) || \ 110 ((DR) == BKP_DR10) || ((DR) == BKP_DR11) || ((DR) == BKP_DR12) || \ 111 ((DR) == BKP_DR13) || ((DR) == BKP_DR14) || ((DR) == BKP_DR15) || \ 112 ((DR) == BKP_DR16) || ((DR) == BKP_DR17) || ((DR) == BKP_DR18) || \ 113 ((DR) == BKP_DR19) || ((DR) == BKP_DR20) || ((DR) == BKP_DR21) || \ 114 ((DR) == BKP_DR22) || ((DR) == BKP_DR23) || ((DR) == BKP_DR24) || \ 115 ((DR) == BKP_DR25) || ((DR) == BKP_DR26) || ((DR) == BKP_DR27) || \ 116 ((DR) == BKP_DR28) || ((DR) == BKP_DR29) || ((DR) == BKP_DR30) || \ 117 ((DR) == BKP_DR31) || ((DR) == BKP_DR32) || ((DR) == BKP_DR33) || \ 118 ((DR) == BKP_DR34) || ((DR) == BKP_DR35) || ((DR) == BKP_DR36) || \ 119 ((DR) == BKP_DR37) || ((DR) == BKP_DR38) || ((DR) == BKP_DR39) || \ 120 ((DR) == BKP_DR40) || ((DR) == BKP_DR41) || ((DR) == BKP_DR42)) 121 122 #define IS_BKP_CALIBRATION_VALUE(VALUE) ((VALUE) <= 0x7F) 123 /** 124 * @} 125 */ 126 127 /** 128 * @} 129 */ 130 131 /** @defgroup BKP_Exported_Macros 132 * @{ 133 */ 134 135 /** 136 * @} 137 */ 138 139 /** @defgroup BKP_Exported_Functions 140 * @{ 141 */ 142 143 void BKP_DeInit(void); 144 void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel); 145 void BKP_TamperPinCmd(FunctionalState NewState); 146 void BKP_ITConfig(FunctionalState NewState); 147 void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource); 148 void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue); 149 void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data); 150 uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR); 151 FlagStatus BKP_GetFlagStatus(void); 152 void BKP_ClearFlag(void); 153 ITStatus BKP_GetITStatus(void); 154 void BKP_ClearITPendingBit(void); 155 156 #ifdef __cplusplus 157 } 158 #endif 159 160 #endif /* __AIR32F10x_BKP_H */ 161 /** 162 * @} 163 */ 164 165 /** 166 * @} 167 */ 168 169 /** 170 * @} 171 */ 172 173