123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #ifndef GD32F10X_PMU_H
- #define GD32F10X_PMU_H
- #include "gd32f10x.h"
- #define PMU PMU_BASE
- #define PMU_CTL REG32((PMU) + 0x00000000U)
- #define PMU_CS REG32((PMU) + 0x00000004U)
- #define PMU_CTL_LDOLP BIT(0)
- #define PMU_CTL_STBMOD BIT(1)
- #define PMU_CTL_WURST BIT(2)
- #define PMU_CTL_STBRST BIT(3)
- #define PMU_CTL_LVDEN BIT(4)
- #define PMU_CTL_LVDT BITS(5,7)
- #define PMU_CTL_BKPWEN BIT(8)
- #define PMU_CS_WUF BIT(0)
- #define PMU_CS_STBF BIT(1)
- #define PMU_CS_LVDF BIT(2)
- #define PMU_CS_WUPEN BIT(8)
- #define PMU_LDO_NORMAL ((uint32_t)0x00000000U)
- #define PMU_LDO_LOWPOWER PMU_CTL_LDOLP
- #define CTL_LVDT(regval) (BITS(5,7)&((uint32_t)(regval) << 5))
- #define PMU_LVDT_0 CTL_LVDT(0)
- #define PMU_LVDT_1 CTL_LVDT(1)
- #define PMU_LVDT_2 CTL_LVDT(2)
- #define PMU_LVDT_3 CTL_LVDT(3)
- #define PMU_LVDT_4 CTL_LVDT(4)
- #define PMU_LVDT_5 CTL_LVDT(5)
- #define PMU_LVDT_6 CTL_LVDT(6)
- #define PMU_LVDT_7 CTL_LVDT(7)
- #define PMU_FLAG_WAKEUP PMU_CS_WUF
- #define PMU_FLAG_STANDBY PMU_CS_STBF
- #define PMU_FLAG_LVD PMU_CS_LVDF
- #define PMU_FLAG_RESET_WAKEUP ((uint8_t)0x00U)
- #define PMU_FLAG_RESET_STANDBY ((uint8_t)0x01U)
- #define WFI_CMD ((uint8_t)0x00U)
- #define WFE_CMD ((uint8_t)0x01U)
- void pmu_deinit(void);
- void pmu_lvd_select(uint32_t lvdt_n);
- void pmu_lvd_disable(void);
- void pmu_to_sleepmode(uint8_t sleepmodecmd);
- void pmu_to_deepsleepmode(uint32_t ldo, uint8_t deepsleepmodecmd);
- void pmu_to_standbymode(void);
- void pmu_wakeup_pin_enable(void);
- void pmu_wakeup_pin_disable(void);
- void pmu_backup_write_enable(void);
- void pmu_backup_write_disable(void);
- FlagStatus pmu_flag_get(uint32_t flag);
- void pmu_flag_clear(uint32_t flag);
- #endif
|