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

📄 lpc24xx.h

📁 ARM里实现 PWM ARM经典 C语言写的
💻 H
📖 第 1 页 / 共 5 页
字号:
#define DACR           (*(volatile unsigned long *)(DAC_BASE_ADDR + 0x00))


/* Watchdog */
#define WDG_BASE_ADDR		0xE0000000
#define WDMOD          (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x00))
#define WDTC           (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x04))
#define WDFEED         (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x08))
#define WDTV           (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x0C))
#define WDCLKSEL       (*(volatile unsigned long *)(WDG_BASE_ADDR + 0x10))


/* CAN CONTROLLERS AND ACCEPTANCE FILTER */
#define CAN_ACCEPT_BASE_ADDR		0xE003C000
#define CAN_AFMR 			(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x00))  	
#define CAN_SFF_SA 			(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x04))  	
#define CAN_SFF_GRP_SA 		(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x08))
#define CAN_EFF_SA 			(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x0C))
#define CAN_EFF_GRP_SA 		(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x10))  	
#define CAN_EOT 			(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x14))
#define CAN_LUT_ERR_ADR		(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x18))  	
#define CAN_LUT_ERR 		(*(volatile unsigned long *)(CAN_ACCEPT_BASE_ADDR + 0x1C))

#define CAN_CENTRAL_BASE_ADDR		0xE0040000  	
#define CAN_TX_SR 			(*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x00))  	
#define CAN_RX_SR 			(*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x04))  	
#define CAN_MSR 			(*(volatile unsigned long *)(CAN_CENTRAL_BASE_ADDR + 0x08))

#define CAN1_BASE_ADDR		0xE0044000
#define CAN1MOD 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x00))  	
#define CAN1CMR 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x04))  	
#define CAN1GSR 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x08))  	
#define CAN1ICR 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x0C))  	
#define CAN1IER 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x10))
#define CAN1BTR 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x14))  	
#define CAN1EWL 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x18))  	
#define CAN1SR 		(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x1C))  	
#define CAN1RFS 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x20))  	
#define CAN1RID 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x24))
#define CAN1RDA 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x28))  	
#define CAN1RDB 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x2C))
  	
#define CAN1TFI1 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x30))  	
#define CAN1TID1 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x34))  	
#define CAN1TDA1 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x38))
#define CAN1TDB1 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x3C))  	
#define CAN1TFI2 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x40))  	
#define CAN1TID2 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x44))  	
#define CAN1TDA2 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x48))  	
#define CAN1TDB2 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x4C))
#define CAN1TFI3 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x50))  	
#define CAN1TID3 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x54))  	
#define CAN1TDA3 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x58))  	
#define CAN1TDB3 	(*(volatile unsigned long *)(CAN1_BASE_ADDR + 0x5C))

#define CAN2_BASE_ADDR		0xE0048000
#define CAN2MOD 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x00))  	
#define CAN2CMR 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x04))  	
#define CAN2GSR 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x08))  	
#define CAN2ICR 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x0C))  	
#define CAN2IER 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x10))
#define CAN2BTR 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x14))  	
#define CAN2EWL 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x18))  	
#define CAN2SR 		(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x1C))  	
#define CAN2RFS 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x20))  	
#define CAN2RID 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x24))
#define CAN2RDA 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x28))  	
#define CAN2RDB 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x2C))
  	
#define CAN2TFI1 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x30))  	
#define CAN2TID1 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x34))  	
#define CAN2TDA1 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x38))
#define CAN2TDB1 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x3C))  	
#define CAN2TFI2 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x40))  	
#define CAN2TID2 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x44))  	
#define CAN2TDA2 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x48))  	
#define CAN2TDB2 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x4C))
#define CAN2TFI3 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x50))  	
#define CAN2TID3 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x54))  	
#define CAN2TDA3 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x58))  	
#define CAN2TDB3 	(*(volatile unsigned long *)(CAN2_BASE_ADDR + 0x5C))


/* MultiMedia Card Interface(MCI) Controller */
#define MCI_BASE_ADDR		0xE008C000
#define MCIPower       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x00))
#define MCIClock       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x04))
#define MCIArgument    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x08))
#define MCICommand     (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x0C))
#define MCIRespCmd     (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x10))
#define MCIResponse0   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x14))
#define MCIResponse1   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x18))
#define MCIResponse2   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x1C))
#define MCIResponse3   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x20))
#define MCIDataTimer   (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x24))
#define MCIDataLength  (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x28))
#define MCIDataCtrl    (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x2C))
#define MCIDataCnt     (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x30))
#define MCIStatus      (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x34))
#define MCIClear       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x38))
#define MCIMask0       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x3C))
#define MCIMask1       (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x40))
#define MCIFifoCnt     (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x48))
#define MCIFIFO        (*(volatile unsigned long *)(MCI_BASE_ADDR + 0x80))


/* I2S Interface Controller (I2S) */
#define I2S_BASE_ADDR		0xE0088000
#define I2SDAO        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x00))
#define I2SDAI        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x04))
#define I2STXFIFO     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x08))
#define I2SRXFIFO     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x0C))
#define I2SSTATE      (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x10))
#define I2SDMA1       (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x14))
#define I2SDMA2       (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x18))
#define I2SIRQ        (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x1C))
#define I2STXRATE     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x20))
#define I2SRXRATE     (*(volatile unsigned long *)(I2S_BASE_ADDR + 0x24))


/* General-purpose DMA Controller */
#define DMA_BASE_ADDR		   0xFFE04000
#define DMACIntStatus          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x000))
#define DMACIntTCStatus        (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x004))
#define DMACIntTCClear         (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x008))
#define DMACIntErrorStatus     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x00C))
#define DMACIntErrClr          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x010))
#define DMACRawIntTCStatus     (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x014))
#define DMACRawIntErrorStatus  (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x018))
#define DMACEnbldChns          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x01C))
#define DMACSoftBReq           (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x020))
#define DMACSoftSReq           (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x024))
#define DMACSoftLBReq          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x028))
#define DMACSoftLSReq          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x02C))
#define DMACConfiguration      (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x030))
#define DMACSync               (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x034))

/* DMA channel 0 registers */
#define DMACC0SrcAddr          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x100))
#define DMACC0DestAddr         (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x104))
#define DMACC0LLI              (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x108))
#define DMACC0Control          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x10C))
#define DMACC0Configuration    (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x110))

/* DMA channel 1 registers */
#define DMACC1SrcAddr          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x120))
#define DMACC1DestAddr         (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x124))
#define DMACC1LLI              (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x128))
#define DMACC1Control          (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x12C))
#define DMACC1Configuration    (*(volatile unsigned long *)(DMA_BASE_ADDR + 0x130))


/* USB Controller */
#define USB_INT_BASE_ADDR	0xE01FC1C0
#define USB_BASE_ADDR		0xFFE0C200		/* USB Base Address */

#define  USBClkCtrl             	(*(volatile unsigned long *)(0xFFE0CFF4))  
#define  USBClkSt               	(*(volatile unsigned long *)(0xFFE0CFF8)) 
#define  USBPortSel             	(*(volatile unsigned long *)(0xFFE0C110))	/* LPC2378 Only */


#define USBIntSt			(*(volatile unsigned long *)(USB_INT_BASE_ADDR + 0x00))

/* USB Device Interrupt Registers */
#define USBDevIntSt			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x00))
#define USBDevIntEn			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x04))
#define USBDevIntClr		(*(volatile unsigned long *)(USB_BASE_ADDR + 0x08))
#define USBDevIntSet		(*(volatile unsigned long *)(USB_BASE_ADDR + 0x0C))
#define USBDevIntPri		(*(volatile unsigned long *)(USB_BASE_ADDR + 0x2C))

/* USB Device Endpoint Interrupt Registers */
#define USBEpIntSt			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x30))
#define USBEpIntEn			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x34))
#define USBEpIntClr			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x38))
#define USBEpIntSet			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x3C))
#define USBEpIntPri			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x40))

/* USB Device Endpoint Realization Registers */
#define USBReEp				(*(volatile unsigned long *)(USB_BASE_ADDR + 0x44))
#define USBEpInd			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x48))
#define USBMaxPSize			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x4C))

/* USB Device Command Reagisters */
#define USBCmdCode			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x10))
#define USBCmdData			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x14))

/* USB Device Data Transfer Registers */
#define USBRxData			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x18))
#define USBTxData			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x1C))
#define USBRxPLen			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x20))
#define USBTxPLen			(*(volatile unsigned long *)(USB_BASE_ADDR + 0x24))
#define USBCtrl				(*(volatile unsigned long *)(USB_BASE_ADDR + 0x28))

/* USB Device DMA Registers */
#define USBDMARSt           (*(volatile unsigned long *)(USB_BASE_ADDR + 0x50))
#define USBDMARClr          (*(volatile unsigned long *)(USB_BASE_ADDR + 0x54))
#define USBDMARSet          (*(volatile unsigned long *)(USB_BASE_ADDR + 0x58))
#define USBUDCAH            (*(volatile unsigned long *)(USB_BASE_ADDR + 0x80))
#define USBEpDMASt          (*(volatile unsigned long *)(USB_BASE_ADDR + 0x84))
#define USBEpDMAEn          (*(volatile unsigned long *)(USB_BASE_ADDR + 0x88))
#define USBEpDMADis         (*(volatile unsigned long *)(USB_BASE_ADDR + 0x8C))
#define USBDMAIntSt         (*(volatile unsigned long *)(USB_BASE_ADDR + 0x90))
#define USBDMAIntEn         (*(volatile unsigned long *)(USB_BASE_ADDR + 0x94))
#define USBEoTIntSt         (*(volatile unsigned long *)(USB_BASE_ADDR + 0xA0))
#define USBEoTIn

⌨️ 快捷键说明

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