123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 |
- #ifndef GD32F30X_H
- #define GD32F30X_H
- #ifdef cplusplus
- extern "C" {
- #endif
- #if !defined (GD32F30X_HD) && !defined (GD32F30X_XD) && !defined (GD32F30X_CL)
-
-
-
- #endif
-
- #if !defined (GD32F30X_HD) && !defined (GD32F30X_XD) && !defined (GD32F30X_CL)
- #error "Please select the target GD32F30x device in gd32f30x.h file"
- #endif
- #if !defined HXTAL_VALUE
- #ifdef GD32F30X_CL
- #define HXTAL_VALUE ((uint32_t)25000000)
- #else
- #define HXTAL_VALUE ((uint32_t)8000000)
- #endif
- #endif
-
- #if !defined (HXTAL_STARTUP_TIMEOUT)
- #define HXTAL_STARTUP_TIMEOUT ((uint16_t)0x0800)
- #endif
- #if !defined (IRC48M_VALUE)
- #define IRC48M_VALUE ((uint32_t)48000000)
- #endif
- #if !defined (IRC8M_VALUE)
- #define IRC8M_VALUE ((uint32_t)8000000)
- #endif
- #if !defined (IRC8M_STARTUP_TIMEOUT)
- #define IRC8M_STARTUP_TIMEOUT ((uint16_t)0x0500)
- #endif
- #if !defined (IRC40K_VALUE)
- #define IRC40K_VALUE ((uint32_t)40000)
- #endif
- #if !defined (LXTAL_VALUE)
- #define LXTAL_VALUE ((uint32_t)32768)
- #endif
- #define __GD32F30x_STDPERIPH_VERSION_MAIN (0x01)
- #define __GD32F30x_STDPERIPH_VERSION_SUB1 (0x00)
- #define __GD32F30x_STDPERIPH_VERSION_SUB2 (0x00)
- #define __GD32F30x_STDPERIPH_VERSION_RC (0x00)
- #define __GD32F30x_STDPERIPH_VERSION ((__GD32F30x_STDPERIPH_VERSION_MAIN << 24)\
- |(__GD32F30x_STDPERIPH_VERSION_SUB1 << 16)\
- |(__GD32F30x_STDPERIPH_VERSION_SUB2 << 8)\
- |(__GD32F30x_STDPERIPH_VERSION_RC))
- #define __CM4_REV 0x0001
- #define __MPU_PRESENT 1
- #define __NVIC_PRIO_BITS 4
- #define __Vendor_SysTickConfig 0
- typedef enum IRQn
- {
-
- NonMaskableInt_IRQn = -14,
- MemoryManagement_IRQn = -12,
- BusFault_IRQn = -11,
- UsageFault_IRQn = -10,
- SVCall_IRQn = -5,
- DebugMonitor_IRQn = -4,
- PendSV_IRQn = -2,
- SysTick_IRQn = -1,
-
- WWDGT_IRQn = 0,
- LVD_IRQn = 1,
- TAMPER_IRQn = 2,
- RTC_IRQn = 3,
- FMC_IRQn = 4,
- RCU_CTC_IRQn = 5,
- EXTI0_IRQn = 6,
- EXTI1_IRQn = 7,
- EXTI2_IRQn = 8,
- EXTI3_IRQn = 9,
- EXTI4_IRQn = 10,
- DMA0_Channel0_IRQn = 11,
- DMA0_Channel1_IRQn = 12,
- DMA0_Channel2_IRQn = 13,
- DMA0_Channel3_IRQn = 14,
- DMA0_Channel4_IRQn = 15,
- DMA0_Channel5_IRQn = 16,
- DMA0_Channel6_IRQn = 17,
- ADC0_1_IRQn = 18,
- #ifdef GD32F30X_HD
- USBD_HP_CAN0_TX_IRQn = 19,
- USBD_LP_CAN0_RX0_IRQn = 20,
- CAN0_RX1_IRQn = 21,
- CAN0_EWMC_IRQn = 22,
- EXTI5_9_IRQn = 23,
- TIMER0_BRK_IRQn = 24,
- TIMER0_UP_IRQn = 25,
- TIMER0_TRG_CMT_IRQn = 26,
- TIMER0_Channel_IRQn = 27,
- TIMER1_IRQn = 28,
- TIMER2_IRQn = 29,
- TIMER3_IRQn = 30,
- I2C0_EV_IRQn = 31,
- I2C0_ER_IRQn = 32,
- I2C1_EV_IRQn = 33,
- I2C1_ER_IRQn = 34,
- SPI0_IRQn = 35,
- SPI1_IRQn = 36,
- USART0_IRQn = 37,
- USART1_IRQn = 38,
- USART2_IRQn = 39,
- EXTI10_15_IRQn = 40,
- RTC_Alarm_IRQn = 41,
- USBD_WKUP_IRQn = 42,
- TIMER7_BRK_IRQn = 43,
- TIMER7_UP_IRQn = 44,
- TIMER7_TRG_CMT_IRQn = 45,
- TIMER7_Channel_IRQn = 46,
- ADC2_IRQn = 47,
- EXMC_IRQn = 48,
- SDIO_IRQn = 49,
- TIMER4_IRQn = 50,
- SPI2_IRQn = 51,
- UART3_IRQn = 52,
- UART4_IRQn = 53,
- TIMER5_IRQn = 54,
- TIMER6_IRQn = 55,
- DMA1_Channel0_IRQn = 56,
- DMA1_Channel1_IRQn = 57,
- DMA1_Channel2_IRQn = 58,
- DMA1_Channel3_Channel4_IRQn = 59,
- #endif
- #ifdef GD32F30X_XD
- USBD_HP_CAN0_TX_IRQn = 19,
- USBD_LP_CAN0_RX0_IRQn = 20,
- CAN0_RX1_IRQn = 21,
- CAN0_EWMC_IRQn = 22,
- EXTI5_9_IRQn = 23,
- TIMER0_BRK_TIMER8_IRQn = 24,
- TIMER0_UP_TIMER9_IRQn = 25,
- TIMER0_TRG_CMT_TIMER10_IRQn = 26,
- TIMER0_Channel_IRQn = 27,
- TIMER1_IRQn = 28,
- TIMER2_IRQn = 29,
- TIMER3_IRQn = 30,
- I2C0_EV_IRQn = 31,
- I2C0_ER_IRQn = 32,
- I2C1_EV_IRQn = 33,
- I2C1_ER_IRQn = 34,
- SPI0_IRQn = 35,
- SPI1_IRQn = 36,
- USART0_IRQn = 37,
- USART1_IRQn = 38,
- USART2_IRQn = 39,
- EXTI10_15_IRQn = 40,
- RTC_Alarm_IRQn = 41,
- USBD_WKUP_IRQn = 42,
- TIMER7_BRK_TIMER11_IRQn = 43,
- TIMER7_UP_TIMER12_IRQn = 44,
- TIMER7_TRG_CMT_TIMER13_IRQn = 45,
- TIMER7_Channel_IRQn = 46,
- ADC2_IRQn = 47,
- EXMC_IRQn = 48,
- SDIO_IRQn = 49,
- TIMER4_IRQn = 50,
- SPI2_IRQn = 51,
- UART3_IRQn = 52,
- UART4_IRQn = 53,
- TIMER5_IRQn = 54,
- TIMER6_IRQn = 55,
- DMA1_Channel0_IRQn = 56,
- DMA1_Channel1_IRQn = 57,
- DMA1_Channel2_IRQn = 58,
- DMA1_Channel3_Channel4_IRQn = 59,
- #endif
- #ifdef GD32F30X_CL
- CAN0_TX_IRQn = 19,
- CAN0_RX0_IRQn = 20,
- CAN0_RX1_IRQn = 21,
- CAN0_EWMC_IRQn = 22,
- EXTI5_9_IRQn = 23,
- TIMER0_BRK_TIMER8_IRQn = 24,
- TIMER0_UP_TIMER9_IRQn = 25,
- TIMER0_TRG_CMT_TIMER10_IRQn = 26,
- TIMER0_Channel_IRQn = 27,
- TIMER1_IRQn = 28,
- TIMER2_IRQn = 29,
- TIMER3_IRQn = 30,
- I2C0_EV_IRQn = 31,
- I2C0_ER_IRQn = 32,
- I2C1_EV_IRQn = 33,
- I2C1_ER_IRQn = 34,
- SPI0_IRQn = 35,
- SPI1_IRQn = 36,
- USART0_IRQn = 37,
- USART1_IRQn = 38,
- USART2_IRQn = 39,
- EXTI10_15_IRQn = 40,
- RTC_ALARM_IRQn = 41,
- USBFS_WKUP_IRQn = 42,
- TIMER7_BRK_TIMER11_IRQn = 43,
- TIMER7_UP_TIMER12_IRQn = 44,
- TIMER7_TRG_CMT_TIMER13_IRQn = 45,
- TIMER7_Channel_IRQn = 46,
- EXMC_IRQn = 48,
- TIMER4_IRQn = 50,
- SPI2_IRQn = 51,
- UART3_IRQn = 52,
- UART4_IRQn = 53,
- TIMER5_IRQn = 54,
- TIMER6_IRQn = 55,
- DMA1_Channel0_IRQn = 56,
- DMA1_Channel1_IRQn = 57,
- DMA1_Channel2_IRQn = 58,
- DMA1_Channel3_IRQn = 59,
- DMA1_Channel4_IRQn = 60,
- ENET_IRQn = 61,
- ENET_WKUP_IRQn = 62,
- CAN1_TX_IRQn = 63,
- CAN1_RX0_IRQn = 64,
- CAN1_RX1_IRQn = 65,
- CAN1_EWMC_IRQn = 66,
- USBFS_IRQn = 67,
- #endif
- } IRQn_Type;
- #include "core_cm4.h"
- #include "system_gd32f30x.h"
- #include <stdint.h>
- typedef enum {DISABLE = 0, ENABLE = !DISABLE} EventStatus, ControlStatus;
- typedef enum {FALSE = 0, TRUE = !FALSE} bool;
- typedef enum {RESET = 0, SET = !RESET} FlagStatus;
- typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrStatus;
- #define REG32(addr) (*(volatile uint32_t *)(uint32_t)(addr))
- #define REG16(addr) (*(volatile uint16_t *)(uint32_t)(addr))
- #define REG8(addr) (*(volatile uint8_t *)(uint32_t)(addr))
- #define BIT(x) ((uint32_t)((uint32_t)0x01U<<(x)))
- #define BITS(start, end) ((0xFFFFFFFFUL << (start)) & (0xFFFFFFFFUL >> (31U - (uint32_t)(end))))
- #define GET_BITS(regval, start, end) (((regval) & BITS((start),(end))) >> (start))
- #define FLASH_BASE ((uint32_t)0x08000000U)
- #define SRAM_BASE ((uint32_t)0x20000000U)
- #define OB_BASE ((uint32_t)0x1FFFF800U)
- #define DBG_BASE ((uint32_t)0xE0042000U)
- #define EXMC_BASE ((uint32_t)0xA0000000U)
- #define APB1_BUS_BASE ((uint32_t)0x40000000U)
- #define APB2_BUS_BASE ((uint32_t)0x40010000U)
- #define AHB1_BUS_BASE ((uint32_t)0x40018000U)
- #define AHB3_BUS_BASE ((uint32_t)0x60000000U)
- #define TIMER_BASE (APB1_BUS_BASE + 0x00000000U)
- #define RTC_BASE (APB1_BUS_BASE + 0x00002800U)
- #define WWDGT_BASE (APB1_BUS_BASE + 0x00002C00U)
- #define FWDGT_BASE (APB1_BUS_BASE + 0x00003000U)
- #define SPI_BASE (APB1_BUS_BASE + 0x00003800U)
- #define USART_BASE (APB1_BUS_BASE + 0x00004400U)
- #define I2C_BASE (APB1_BUS_BASE + 0x00005400U)
- #define USBD_BASE (APB1_BUS_BASE + 0x00005C00U)
- #define CAN_BASE (APB1_BUS_BASE + 0x00006400U)
- #define BKP_BASE (APB1_BUS_BASE + 0x00006C00U)
- #define PMU_BASE (APB1_BUS_BASE + 0x00007000U)
- #define DAC_BASE (APB1_BUS_BASE + 0x00007400U)
- #define CTC_BASE (APB1_BUS_BASE + 0x0000C800U)
- #define AFIO_BASE (APB2_BUS_BASE + 0x00000000U)
- #define EXTI_BASE (APB2_BUS_BASE + 0x00000400U)
- #define GPIO_BASE (APB2_BUS_BASE + 0x00000800U)
- #define ADC_BASE (APB2_BUS_BASE + 0x00002400U)
- #define SDIO_BASE (AHB1_BUS_BASE + 0x00000000U)
- #define DMA_BASE (AHB1_BUS_BASE + 0x00008000U)
- #define RCU_BASE (AHB1_BUS_BASE + 0x00009000U)
- #define FMC_BASE (AHB1_BUS_BASE + 0x0000A000U)
- #define CRC_BASE (AHB1_BUS_BASE + 0x0000B000U)
- #define ENET_BASE (AHB1_BUS_BASE + 0x00010000U)
- #define USBFS_BASE (AHB1_BUS_BASE + 0x0FFE8000U)
- #if !defined USE_STDPERIPH_DRIVER
- #define USE_STDPERIPH_DRIVER
- #endif
- #ifdef USE_STDPERIPH_DRIVER
- #include "gd32f30x_libopt.h"
- #endif
- #ifdef cplusplus
- }
- #endif
- #endif
|