fm33fr0xx.h的定义
一、时钟定义
#define __RCHF_INITIAL_CLOCK (8000000) //内部RC高频震荡器:8M
#define __RCMF_CLOCK (4000000) //内部RC 4M振荡器
#define __LPOSC_CLOCK (32000) //内部RC低频震荡器
#define __XTHF_CLOCK (8000000) //外部高频振荡器:4M
#define __XTLF_CLOCK (32768) //外部低频振荡器
二、中断定义
typedef enum {
/* ------------------- FM33FR0XX Processor Exceptions Numbers -------------------*/
Reset_IRQn = -15, /*!< 1 复位向量 */
NMI_IRQn = -14, /*!< 2 WKUPx中断
低功耗模式错误中断
存储器非法访问中断
Flash ECC检错中断 */
HardFault_IRQn = -13, /*!< 3 HardFault中断向量 */
SVC_IRQn = -5, /*!< 11 SVCall系统服务请求 */
PendSV_IRQn = -2, /*!< 14 可挂起系统服务请求 */
SysTick_IRQn = -1, /*!< 15 内部定时器中断向量 */
/* -------------------- Cortex-M0 Specific Interrupt Numbers --------------------*/
WDT_IRQn = 0, /*!< 0 窗口看门狗或独立看门狗中断 */
SVD_IRQn = 1, /*!< 1 电源监测报警中断 */
RTC_IRQn = 2, /*!< 2 实时时钟中断 */
MUX0_IRQn = 3, /*!< 3 可配置多路中断 */
TSI_IRQn = 4, /*!< 4 按键触摸检测中断 */
ADC_IRQn = 5, /*!< 5 ADC转换完成中断 */
CAN0_IRQn = 6, /*!< 6 CAN0中断 */
MUX1_IRQn = 7, /*!< 7 可配置多路中断 */
MUX2_IRQn = 8, /*!< 8 可配置多路中断 */
MUX3_IRQn = 9, /*!< 9 可配置多路中断 */
MUX4_IRQn = 10, /*!< 10 可配置多路中断 */
MUX5_IRQn = 11, /*!< 11 可配置多路中断 */
MUX6_IRQn = 12, /*!< 12 可配置多路中断 */
MUX7_IRQn = 13, /*!< 13 可配置多路中断 */
MUX8_IRQn = 14, /*!< 14 可配置多路中断 */
I2CMX_IRQn = 15, /*!< 15 I2C master中断 */
LPUART1_IRQn = 16, /*!< 16 LPUART1中断 */
I2C_SMBX_IRQn = 17, /*!< 17 I2C SMBUS中断 */
MUX9_IRQn = 18, /*!< 18 可配置多路中断 */
AES_IRQn = 19, /*!< 19 AES中断 */
LPTIM_IRQn = 20, /*!< 20 LPTIM16中断 */
DMA_IRQn = 21, /*!< 21 DMA中断 */
WKUPX_IRQn = 22, /*!< 22 WKUP引脚中断 */
MUX10_IRQn = 23, /*!< 23 可配置多路中断 */
BSTIM_IRQn = 24, /*!< 24 BSTIM16中断 */
COMPX_IRQn = 25, /*!< 25 COMPx中断 */
MUX11_IRQn = 26, /*!< 26 可配置多路中断 */
MUX12_IRQn = 27, /*!< 27 可配置多路中断 */
ATIM_IRQn = 28, /*!< 28 高级定时器中断 */
MUX13_IRQn = 29, /*!< 29 可配置多路中断 */
GPIO_IRQn = 30, /*!< 30 外部引脚中断 */
ECCC_RAMP_FDET_IRQn = 31, /*!< 31 Flash ECC纠错中断/RAM奇偶校
验错误中断/XTLF或XTHF停振检测
中断 */
} IRQn_Type;
三、FLASH、PMU、SCU、INTMUX、RMU、IWDT、WWDT、CMU、SVD、AES、RNG、COMP、DIVAS、I2CSMBx、I2Cx、UART、UARTx、LPUARTx、SPIx、CANx、DMA、CRC、ATIM、TAU、TAU0、TAU1、BSTIM16 、LPTIM16、RTC、LCD、ADC、PGL、TSI、SFU、DBG、GPIO定义
具体内容请查看fm33fr0xx.h
其中GPIOx如下:
typedef struct
{
__IO uint32_t INEN; /*!<GPIOx Input Enable Register, Address offset: 0x00 */
__IO uint32_t PUDEN; /*!<GPIOx Pull-Up Pull-Down Enable Register,Address offset:0x04 */
__IO uint32_t ODEN; /*!<GPIOx Open-Drain Enable Register, Address offset: 0x08 */
__IO uint32_t FCR; /*!<GPIOx Function Control Register, Address offset: 0x0C */
__IO uint32_t DO; /*!<GPIOx Data Output Register, Address offset: 0x10 */
__O uint32_t DSET; /*!<GPIOx Data Set Register, Address offset: 0x14 */
__O uint32_t DRST; /*!<GPIOx Data Reset Register, Address offset: 0x18 */
__I uint32_t DIN; /*!<GPIOx Data Input Register, Address offset: 0x1C */
__IO uint32_t DFS; /*!<GPIOx Digital Function Select, Address offset: 0x20 */
__IO uint32_t RSV1; /*!<RESERVED REGISTER, Address offset: 0x24 */
__IO uint32_t ANEN; /*!<GPIOx Analog channel Enable Register, Address offset: 0x28 */
__IO uint32_t DSR; /*!<GPIOx Driver Strength Register, Address offset: 0x2C */
__IO uint32_t TMUXR; /*!<GPIOC Timer Mux Register,Address offset: 0x30 */
}GPIO_Type;
四、内存映射
1、CPU内存映射
#define FLASH_BASE (( uint32_t)0x00000000)
#define SRAM_BASE (( uint32_t)0x20000000)
#define PERIPH_BASE (( uint32_t)0x40000000)
2、外设内存映射
#define FLS_BASE (PERIPH_BASE +0x00001000)
#define PMU_BASE (PERIPH_BASE +0x00002000)
#define VREFP_BASE (PERIPH_BASE +0x00002040)
#define SCU_BASE (PERIPH_BASE +0x00000000)
#define INTMUX_BASE (PERIPH_BASE +0x00016000)
#define RMU_BASE (PERIPH_BASE +0x00002800)
#define IWDT_BASE (PERIPH_BASE +0x00011400)
#define WWDT_BASE (PERIPH_BASE +0x00011800)
#define CMU_BASE (PERIPH_BASE +0x00002400)
#define SVD_BASE (PERIPH_BASE +0x0001A800)
#define AES_BASE (PERIPH_BASE +0x0001B800)
#define RNG_BASE (PERIPH_BASE +0x0001BC00)
#define COMP1_BASE (PERIPH_BASE +0x00019C00)
#define COMP2_BASE (PERIPH_BASE +0x00019C04)
#define COMP_COMMON_BASE (PERIPH_BASE +0x00019C0C)
#define DIVAS_BASE (PERIPH_BASE +0x00013000)
#define I2CSMB0_BASE (PERIPH_BASE +0x00012400)
#define I2CSMB1_BASE (PERIPH_BASE +0x00012800)
#define I2C0_BASE (PERIPH_BASE +0x00015000)
#define I2C1_BASE (PERIPH_BASE +0x00015400)
#define I2C2_BASE (PERIPH_BASE +0x00015800)
#define I2C3_BASE (PERIPH_BASE +0x00015C00)
#define UART_COMMON_BASE (PERIPH_BASE +0x00017C00)
#define UART0_BASE (PERIPH_BASE +0x00011C00)
#define UART1_BASE (PERIPH_BASE +0x00012000)
#define UART2_BASE (PERIPH_BASE +0x00017400)
#define UART3_BASE (PERIPH_BASE +0x00017800)
#define UART4_BASE (PERIPH_BASE +0x0001A000)
#define UART5_BASE (PERIPH_BASE +0x0001A400)
#define LPUART1_BASE (PERIPH_BASE +0x00010400)
#define SPI0_BASE (PERIPH_BASE +0x00019000)
#define SPI1_BASE (PERIPH_BASE +0x00018C00)
#define SPI2_BASE (PERIPH_BASE +0x00010800)
#define SPI3_BASE (PERIPH_BASE +0x00014000)
#define CAN0_BASE (PERIPH_BASE +0x00019400)
#define CAN1_BASE (PERIPH_BASE +0x00018800)
#define DMA_BASE (PERIPH_BASE +0x00000400)
#define CRC_BASE (PERIPH_BASE +0x00018000)
#define ATIM_BASE (PERIPH_BASE +0x0001B000)
#define TAU_COMMON_BASE (PERIPH_BASE +0x00013C00)
#define TAU0_BASE (PERIPH_BASE +0x00013C10)
#define TAU1_BASE (PERIPH_BASE +0x00013CF0)
#define BSTIM16_BASE (PERIPH_BASE +0x0001B400)
#define LPTIM16_BASE (PERIPH_BASE +0x00013400)
#define RTC_BASE (PERIPH_BASE +0x00011000)
#define LCD_BASE (PERIPH_BASE +0x00010C00)
#define ADC_BASE (PERIPH_BASE +0x0001AC00)
#define PGL_BASE (PERIPH_BASE +0x00013800)
#define TSI_BASE (PERIPH_BASE +0x00010000)
#define GPIOA_BASE (PERIPH_BASE +0x00000C00)
#define GPIOB_BASE (PERIPH_BASE +0x00000C40)
#define GPIOC_BASE (PERIPH_BASE +0x00000C80)
#define GPIOD_BASE (PERIPH_BASE +0x00000CC0)
#define GPIOE_BASE (PERIPH_BASE +0x00000D00)
#define GPIOF_BASE (PERIPH_BASE +0x00000D40)
#define GPIO_BASE (PERIPH_BASE +0x00000DC0)
#define SFU_BASE (PERIPH_BASE +0x00001C00)
#define DBG_BASE (PERIPH_BASE +0x00000000)
3、对外声明
#define FLASH ((FLASH_Type *) FLS_BASE )
#define PMU ((PMU_Type *) PMU_BASE )
#define VREFP ((VREFP_Type *) VREFP_BASE )
#define SCU ((SCU_Type *) SCU_BASE )
#define INTMUX ((INTMUX_Type *) INTMUX_BASE )
#define RMU ((RMU_Type *) RMU_BASE )
#define IWDT ((IWDT_Type *) IWDT_BASE )
#define WWDT ((WWDT_Type *) WWDT_BASE )
#define CMU ((CMU_Type *) CMU_BASE )
#define SVD ((SVD_Type *) SVD_BASE )
#define AES ((AES_Type *) AES_BASE )
#define RNG ((RNG_Type *) RNG_BASE )
#define COMP1 ((COMP_Type *) COMP1_BASE )
#define COMP2 ((COMP_Type *) COMP2_BASE )
#define COMP ((COMP_COMMON_Type *) COMP_COMMON_BASE )
#define DIVAS ((DIVAS_Type *) DIVAS_BASE )
#define I2CSMB0 ((I2CSMB_Type *) I2CSMB0_BASE )
#define I2CSMB1 ((I2CSMB_Type *) I2CSMB1_BASE )
#define I2C0 ((I2C_Type *) I2C0_BASE )
#define I2C1 ((I2C_Type *) I2C1_BASE )
#define I2C2 ((I2C_Type *) I2C2_BASE )
#define I2C3 ((I2C_Type *) I2C3_BASE )
#define UART ((UART_COMMON_Type *) UART_COMMON_BASE )
#define UART0 ((UART_Type *) UART0_BASE )
#define UART1 ((UART_Type *) UART1_BASE )
#define UART2 ((UART_Type *) UART2_BASE )
#define UART3 ((UART_Type *) UART3_BASE )
#define UART4 ((UART_Type *) UART4_BASE )
#define UART5 ((UART_Type *) UART5_BASE )
#define LPUART1 ((LPUART_Type *) LPUART1_BASE )
#define SPI0 ((SPI_Type *) SPI0_BASE )
#define SPI1 ((SPI_Type *) SPI1_BASE )
#define SPI2 ((SPI_Type *) SPI2_BASE )
#define SPI3 ((SPI_Type *) SPI3_BASE )
#define CAN0 ((CAN_Type *) CAN0_BASE )
#define CAN1 ((CAN_Type *) CAN1_BASE )
#define DMA ((DMA_Type *) DMA_BASE )
#define CRC ((CRC_Type *) CRC_BASE )
#define ATIM ((ATIM_Type *) ATIM_BASE )
#define TAU ((TAU_COMMON_Type *) TAU_COMMON_BASE )
#define TAU0 ((TAU0_Type *) TAU0_BASE )
#define TAU1 ((TAU1_Type *) TAU1_BASE )
#define BSTIM16 ((BSTIM16_Type *) BSTIM16_BASE )
#define LPTIM16 ((LPTIM16_Type *) LPTIM16_BASE )
#define RTC ((RTC_Type *) RTC_BASE )
#define LCD ((LCD_Type *) LCD_BASE )
#define ADC ((ADC_Type *) ADC_BASE )
#define PGL ((PGL_Type *) PGL_BASE )
#define TSI ((TSI_Type *) TSI_BASE )
#define GPIOA ((GPIO_Type *) GPIOA_BASE )
#define GPIOB ((GPIO_Type *) GPIOB_BASE )
#define GPIOC ((GPIO_Type *) GPIOC_BASE )
#define GPIOD ((GPIO_Type *) GPIOD_BASE )
#define GPIOE ((GPIO_Type *) GPIOE_BASE )
#define GPIOF ((GPIO_Type *) GPIOF_BASE )
#define GPIO ((GPIO_COMMON_Type *) GPIO_BASE )
#define SFU ((SFU_Type *) SFU_BASE )
#define DBG ((DBG_Type *) DBG_BASE )
版权声明:本文为qq_42894477原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。