⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc17xx.h

📁 LPC1700在线升级方案V1.00
💻 H
📖 第 1 页 / 共 3 页
字号:
/*********************************************************************************************************
 * @file:    LPC17xx.h
 * @purpose: CMSIS Cortex-M3 Core Peripheral Access Layer Header File for 
 *           NXP LPC17xx Device Series 
 * @version: V1.09
 * @date:    17. March 2010
 *--------------------------------------------------------------------------------------------------------
 *
 * Copyright (C) 2008 ARM Limited. All rights reserved.
 *
 * ARM Limited (ARM) is supplying this software for use with Cortex-M3 
 * processor based microcontrollers.  This file can be freely distributed 
 * within development tools that are supporting such ARM based processors. 
 *
 * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 ********************************************************************************************************/


#ifndef __LPC17xx_H__
#define __LPC17xx_H__

/*
 * =======================================================================================================
 * ---------- Interrupt Number Definition ----------------------------------------------------------------
 * =======================================================================================================
 */

typedef enum IRQn
{
/******  Cortex-M3 Processor Exceptions Numbers *********************************************************/
  NonMaskableInt_IRQn           = -14,            /*!< 2 Non Maskable Interrupt                         */
  MemoryManagement_IRQn         = -12,            /*!< 4 Cortex-M3 Memory Management Interrupt          */
  BusFault_IRQn                 = -11,            /*!< 5 Cortex-M3 Bus Fault Interrupt                  */
  UsageFault_IRQn               = -10,            /*!< 6 Cortex-M3 Usage Fault Interrupt                */
  SVCall_IRQn                   = -5,             /*!< 11 Cortex-M3 SV Call Interrupt                   */
  DebugMonitor_IRQn             = -4,             /*!< 12 Cortex-M3 Debug Monitor Interrupt             */
  PendSV_IRQn                   = -2,             /*!< 14 Cortex-M3 Pend SV Interrupt                   */
  SysTick_IRQn                  = -1,             /*!< 15 Cortex-M3 System Tick Interrupt               */

/******  LPC17xx Specific Interrupt Numbers *************************************************************/
  WDT_IRQn                      = 0,              /*!< Watchdog Timer Interrupt                         */
  TIMER0_IRQn                   = 1,              /*!< Timer0 Interrupt                                 */
  TIMER1_IRQn                   = 2,              /*!< Timer1 Interrupt                                 */
  TIMER2_IRQn                   = 3,              /*!< Timer2 Interrupt                                 */
  TIMER3_IRQn                   = 4,              /*!< Timer3 Interrupt                                 */
  UART0_IRQn                    = 5,              /*!< UART0 Interrupt                                  */
  UART1_IRQn                    = 6,              /*!< UART1 Interrupt                                  */
  UART2_IRQn                    = 7,              /*!< UART2 Interrupt                                  */
  UART3_IRQn                    = 8,              /*!< UART3 Interrupt                                  */
  PWM1_IRQn                     = 9,              /*!< PWM1 Interrupt                                   */
  I2C0_IRQn                     = 10,             /*!< I2C0 Interrupt                                   */
  I2C1_IRQn                     = 11,             /*!< I2C1 Interrupt                                   */
  I2C2_IRQn                     = 12,             /*!< I2C2 Interrupt                                   */
  SPI_IRQn                      = 13,             /*!< SPI Interrupt                                    */
  SSP0_IRQn                     = 14,             /*!< SSP0 Interrupt                                   */
  SSP1_IRQn                     = 15,             /*!< SSP1 Interrupt                                   */
  PLL0_IRQn                     = 16,             /*!< PLL0 Lock (Main PLL) Interrupt                   */
  RTC_IRQn                      = 17,             /*!< Real Time Clock Interrupt                        */
  EINT0_IRQn                    = 18,             /*!< External Interrupt 0 Interrupt                   */
  EINT1_IRQn                    = 19,             /*!< External Interrupt 1 Interrupt                   */
  EINT2_IRQn                    = 20,             /*!< External Interrupt 2 Interrupt                   */
  EINT3_IRQn                    = 21,             /*!< External Interrupt 3 Interrupt                   */
  ADC_IRQn                      = 22,             /*!< A/D Converter Interrupt                          */
  BOD_IRQn                      = 23,             /*!< Brown-Out Detect Interrupt                       */
  USB_IRQn                      = 24,             /*!< USB Interrupt                                    */
  CAN_IRQn                      = 25,             /*!< CAN Interrupt                                    */
  DMA_IRQn                      = 26,             /*!< General Purpose DMA Interrupt                    */
  I2S_IRQn                      = 27,             /*!< I2S Interrupt                                    */
  ENET_IRQn                     = 28,             /*!< Ethernet Interrupt                               */
  RIT_IRQn                      = 29,             /*!< Repetitive Interrupt Timer Interrupt             */
  MCPWM_IRQn                    = 30,             /*!< Motor Control PWM Interrupt                      */
  QEI_IRQn                      = 31,             /*!< Quadrature Encoder Interface Interrupt           */
  PLL1_IRQn                     = 32,             /*!< PLL1 Lock (USB PLL) Interrupt                    */
  USBActivity_IRQn              = 33,             /* USB Activity interrupt                             */
  CANActivity_IRQn              = 34,             /* CAN Activity interrupt                             */
} IRQn_Type;


/*
 * =======================================================================================================
 * ----------- Processor and Core Peripheral Section -----------------------------------------------------
 * =======================================================================================================
 */

/* Configuration of the Cortex-M3 Processor and Core Peripherals */
#define __MPU_PRESENT             1               /*!< MPU present or not                               */
#define __NVIC_PRIO_BITS          5               /*!< Number of Bits used for Priority Levels          */
#define __Vendor_SysTickConfig    0               /*!< Set to 1 if different SysTick Config is used     */


#include <core_cm3.h>                             /* Cortex-M3 processor and core peripherals           */
#include "system_LPC17xx.h"                       /* System Header                                      */


/*********************************************************************************************************/
/*                Device Specific Peripheral registers structures                                        */
/*********************************************************************************************************/

#if defined ( __CC_ARM   )
#pragma anon_unions
#endif

/*-------------------------------- System Control (SC) -------------------------------------------------*/
typedef struct
{
  __IO uint32_t FLASHCFG;                         /* Flash Accelerator Module                           */
       uint32_t RESERVED0[31];
  __IO uint32_t PLL0CON;                          /* Clocking and Power Control                         */
  __IO uint32_t PLL0CFG;
  __I  uint32_t PLL0STAT;
  __O  uint32_t PLL0FEED;
       uint32_t RESERVED1[4];
  __IO uint32_t PLL1CON;
  __IO uint32_t PLL1CFG;
  __I  uint32_t PLL1STAT;
  __O  uint32_t PLL1FEED;
       uint32_t RESERVED2[4];
  __IO uint32_t PCON;
  __IO uint32_t PCONP;
       uint32_t RESERVED3[15];
  __IO uint32_t CCLKCFG;
  __IO uint32_t USBCLKCFG;
  __IO uint32_t CLKSRCSEL;
  __IO uint32_t	CANSLEEPCLR;
  __IO uint32_t	CANWAKEFLAGS;
       uint32_t RESERVED4[10];
  __IO uint32_t EXTINT;                           /* External Interrupts                                */
       uint32_t RESERVED5;
  __IO uint32_t EXTMODE;
  __IO uint32_t EXTPOLAR;
       uint32_t RESERVED6[12];
  __IO uint32_t RSID;                             /* Reset                                              */
       uint32_t RESERVED7[7];
  __IO uint32_t SCS;                              /* Syscon Miscellaneous Registers                     */
  __IO uint32_t IRCTRIM;                          /* Clock Dividers                                     */
  __IO uint32_t PCLKSEL0;
  __IO uint32_t PCLKSEL1;
       uint32_t RESERVED8[4];
  __IO uint32_t USBIntSt;                         /* USB Device/OTG Interrupt Register                  */
  __IO uint32_t DMAREQSEL;
  __IO uint32_t CLKOUTCFG;                        /* Clock Output Configuration                         */
 } LPC_SC_TypeDef;

/*--------------------------------- Pin Connect Block (PINCON) -----------------------------------------*/
typedef struct
{
  __IO uint32_t PINSEL0;
  __IO uint32_t PINSEL1;
  __IO uint32_t PINSEL2;
  __IO uint32_t PINSEL3;
  __IO uint32_t PINSEL4;
  __IO uint32_t PINSEL5;
  __IO uint32_t PINSEL6;
  __IO uint32_t PINSEL7;
  __IO uint32_t PINSEL8;
  __IO uint32_t PINSEL9;
  __IO uint32_t PINSEL10;
       uint32_t RESERVED0[5];
  __IO uint32_t PINMODE0;
  __IO uint32_t PINMODE1;
  __IO uint32_t PINMODE2;
  __IO uint32_t PINMODE3;
  __IO uint32_t PINMODE4;
  __IO uint32_t PINMODE5;
  __IO uint32_t PINMODE6;
  __IO uint32_t PINMODE7;
  __IO uint32_t PINMODE8;
  __IO uint32_t PINMODE9;
  __IO uint32_t PINMODE_OD0;
  __IO uint32_t PINMODE_OD1;
  __IO uint32_t PINMODE_OD2;
  __IO uint32_t PINMODE_OD3;
  __IO uint32_t PINMODE_OD4;
  __IO uint32_t I2CPADCFG;
} LPC_PINCON_TypeDef;

/*-------------------------------- General Purpose Input/Output (GPIO) ---------------------------------*/
typedef struct
{
  union {
    __IO uint32_t FIODIR;
    struct {
      __IO uint16_t FIODIRL;
      __IO uint16_t FIODIRH;
    };
    struct {
      __IO uint8_t  FIODIR0;
      __IO uint8_t  FIODIR1;
      __IO uint8_t  FIODIR2;
      __IO uint8_t  FIODIR3;
    };
  };
  uint32_t RESERVED0[3];
  union {
    __IO uint32_t FIOMASK;
    struct {
      __IO uint16_t FIOMASKL;
      __IO uint16_t FIOMASKH;
    };
    struct {
      __IO uint8_t  FIOMASK0;
      __IO uint8_t  FIOMASK1;
      __IO uint8_t  FIOMASK2;
      __IO uint8_t  FIOMASK3;
    };
  };
  union {
    __IO uint32_t FIOPIN;
    struct {
      __IO uint16_t FIOPINL;
      __IO uint16_t FIOPINH;
    };
    struct {
      __IO uint8_t  FIOPIN0;
      __IO uint8_t  FIOPIN1;
      __IO uint8_t  FIOPIN2;
      __IO uint8_t  FIOPIN3;
    };
  };
  union {
    __IO uint32_t FIOSET;
    struct {
      __IO uint16_t FIOSETL;
      __IO uint16_t FIOSETH;
    };
    struct {
      __IO uint8_t  FIOSET0;
      __IO uint8_t  FIOSET1;
      __IO uint8_t  FIOSET2;
      __IO uint8_t  FIOSET3;
    };
  };
  union {
    __O  uint32_t FIOCLR;
    struct {
      __O  uint16_t FIOCLRL;
      __O  uint16_t FIOCLRH;
    };
    struct {
      __O  uint8_t  FIOCLR0;
      __O  uint8_t  FIOCLR1;
      __O  uint8_t  FIOCLR2;
      __O  uint8_t  FIOCLR3;
    };
  };
} LPC_GPIO_TypeDef;

typedef struct
{
  __I  uint32_t IntStatus;
  __I  uint32_t IO0IntStatR;
  __I  uint32_t IO0IntStatF;
  __O  uint32_t IO0IntClr;
  __IO uint32_t IO0IntEnR;
  __IO uint32_t IO0IntEnF;
       uint32_t RESERVED0[3];
  __I  uint32_t IO2IntStatR;
  __I  uint32_t IO2IntStatF;
  __O  uint32_t IO2IntClr;
  __IO uint32_t IO2IntEnR;
  __IO uint32_t IO2IntEnF;
} LPC_GPIOINT_TypeDef;

/*------------------------------------ Timer (TIM) -----------------------------------------------------*/
typedef struct
{
  __IO uint32_t IR;
  __IO uint32_t TCR;
  __IO uint32_t TC;
  __IO uint32_t PR;
  __IO uint32_t PC;
  __IO uint32_t MCR;
  __IO uint32_t MR0;
  __IO uint32_t MR1;
  __IO uint32_t MR2;
  __IO uint32_t MR3;
  __IO uint32_t CCR;
  __I  uint32_t CR0;
  __I  uint32_t CR1;
       uint32_t RESERVED0[2];
  __IO uint32_t EMR;
       uint32_t RESERVED1[12];
  __IO uint32_t CTCR;
} LPC_TIM_TypeDef;

/*------------- --------------------Pulse-Width Modulation (PWM) ---------------------------------------*/
typedef struct
{
  __IO uint32_t IR;
  __IO uint32_t TCR;
  __IO uint32_t TC;
  __IO uint32_t PR;
  __IO uint32_t PC;
  __IO uint32_t MCR;
  __IO uint32_t MR0;
  __IO uint32_t MR1;
  __IO uint32_t MR2;
  __IO uint32_t MR3;
  __IO uint32_t CCR;
  __I  uint32_t CR0;
  __I  uint32_t CR1;
  __I  uint32_t CR2;
  __I  uint32_t CR3;
       uint32_t RESERVED0;
  __IO uint32_t MR4;
  __IO uint32_t MR5;
  __IO uint32_t MR6;
  __IO uint32_t PCR;
  __IO uint32_t LER;
       uint32_t RESERVED1[7];
  __IO uint32_t CTCR;
} LPC_PWM_TypeDef;

/*----------------------------- Universal Asynchronous Receiver Transmitter (UART) ---------------------*/
typedef struct
{
  union {
  __I  uint8_t  RBR;
  __O  uint8_t  THR;
  __IO uint8_t  DLL;
       uint32_t RESERVED0;
  };
  union {
  __IO uint8_t  DLM;
  __IO uint32_t IER;
  };
  union {
  __I  uint32_t IIR;
  __O  uint8_t  FCR;
  };
  __IO uint8_t  LCR;
       uint8_t  RESERVED1[7];
  __I  uint8_t  LSR;
       uint8_t  RESERVED2[7];
  __IO uint8_t  SCR;
       uint8_t  RESERVED3[3];
  __IO uint32_t ACR;
  __IO uint8_t  ICR;
       uint8_t  RESERVED4[3];
  __IO uint8_t  FDR;
       uint8_t  RESERVED5[7];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -