复旦微魔方FM33FR0xx——FL库笔记-定义

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。