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

📄 lpc213xdef.h

📁 ARM的串口源码
💻 H
📖 第 1 页 / 共 3 页
字号:
/*---------------------------------------
        I2C运行状态代码定义
----------------------------------------*/
#define I2C_START            0x08 //已发送起始条件
#define I2C_REP_START        0x10 //已发送重复起始条件
/* Master Transmitter */      //主发送器模式
#define I2C_MT_SLA_ACK        0x18 //已发送SLA+W,且已接收ACK
#define I2C_MT_SLA_NACK        0x20 //已发送SLA+W,且未接收ACK
#define I2C_MT_DATA_ACK        0x28 //已发送I2DAT 中的数据字节,且已接收ACK
#define I2C_MT_DATA_NACK       0x30 //已发送I2DAT 中的数据字节,且未接收ACK
#define I2C_MT_ARB_LOST        0x38
/* Master Receiver */       //主接收器模式
#define I2C_MR_ARB_LOST        0x38
#define I2C_MR_SLA_ACK        0x40 //已发送SLA+R,且已接收ACK
#define I2C_MR_SLA_NACK        0x48 //已发送SLA+R,且未接收ACK
#define I2C_MR_DATA_ACK        0x50
#define I2C_MR_DATA_NACK       0x58
/* Slave Transmitter */
#define I2C_ST_SLA_ACK         0xA8
#define I2C_ST_ARB_LOST_SLA_ACK   0xB0
#define I2C_ST_DATA_ACK        0xB8
#define I2C_ST_DATA_NACK       0xC0
#define I2C_ST_LAST_DATA       0xC8
/* Slave Receiver */
#define I2C_SR_SLA_ACK        0x60
#define I2C_SR_ARB_LOST_SLA_ACK   0x68
#define I2C_SR_GCALL_ACK      0x70
#define I2C_SR_ARB_LOST_GCALL_ACK 0x78
#define I2C_SR_DATA_ACK        0x80
#define I2C_SR_DATA_NACK    0x88
#define I2C_SR_GCALL_DATA_ACK   0x90
#define I2C_SR_GCALL_DATA_NACK   0x98
#define I2C_SR_STOP            0xA0
/* Misc */
#define I2C_NO_INFO            0xF8
#define I2C_BUS_ERROR        0x00

/*-------------------------
        PWMMCR位定义
--------------------------*/
#define PWMMCRI0 0
#define PWMMCRR0 1
#define PWMMCRS0 2
#define PWMMCRI1 3
#define PWMMCRR1 4
#define PWMMCRS1 5
#define PWMMCRI2 6
#define PWMMCRR2 7
#define PWMMCRS2 8
#define PWMMCRI3 9
#define PWMMCRR3 10
#define PWMMCRS3 11
#define PWMMCRI4 12
#define PWMMCRR4 13
#define PWMMCRS4 14
#define PWMMCRI5 15
#define PWMMCRR5 16
#define PWMMCRS5 17
#define PWMMCRI6 18
#define PWMMCRR6 19
#define PWMMCRS6 20
 
/*-------------------------
        PWMPCR位定义
--------------------------*/
#define PWMSEL1 1
#define PWMSEL2 2
#define PWMSEL3 3
#define PWMSEL4 4
#define PWMSEL5 5
#define PWMSEL6 6
#define PWMENA1 9
#define PWMENA2 10
#define PWMENA3 11
#define PWMENA4 12
#define PWMENA5 13
#define PWMENA6 14
/*--------------------------
        PWMLER位定义
---------------------------*/
#define PWMLER0 0
#define PWMLER1 1
#define PWMLER2 2
#define PWMLER3 3
#define PWMLER4 4
#define PWMLER5 5
#define PWMLER6 6
/*--------------------------
        ADCR位定义
---------------------------*/
#define BURST   16
#define PDN     21
#define START   24//26:24=000
#define EDGE    27
/*------------------------------------------------
        A/D 数据寄存器ADDR位定义
-------------------------------------------------*/
#define OVERUN      30
#define DONE        31//A/D转换结束时该位置位。该位在ADDR被读出和ADCR被写入时清零。
/*-----------------------------------------
        复位源识别寄存器RSID位定义
------------------------------------------*/
#define POR          0//RSID.0//POR信号有效时该位置位,并清除RSID寄存器的其它位
#define EXTR         1//RSID.1//RESET信号有效时该位置位
#define WDTR         2//RSID.2//当看门狗定时器溢出和看门狗方式寄存器的WDTRESET位为1时,该位置位。
                              //该位可被其它任何一个复位源清除。
#define BODR         3//RSID.3//当3.3V的电源降到低于2.6V时该位置位
/*-----------------------------------------
        SSP状态寄存器SSPSR位定义
------------------------------------------*/
#define TFE          0//发送FIFO 空。发送FIFO 为空时该位为1,反之为0。
#define TNF          1//发送FIFO 未满。Tx FIFO 满时该位为0,反之为1。
#define RNE          2//接收FIFO 不为空。接收FIFO 为空时该位为0,反之为1。
#define RFF          3//接收FIFO 满。接收FIFO 满时该位为1,反之为0。
#define BSY          4//忙。SSP 控制器空闲、
/*-----------------------------------------
        S0SPCR位定义
------------------------------------------*/
#define CPHA         3//时钟相位控制
#define CPOL         4//时钟极性控制
#define MSTR         5//主模式选择。为1时,SPI处于主模式。为0时,SPI处于从模式。
#define LSBF         6//传输的每个字节的移动方向.为0 时,SPI数据传输MSB(位7)在先
#define SPIE         7//中断使能。为1时,每次SPIF或MODF置位时都会产生硬件中断
/*-----------------------------------------
        SPI 状态寄存器S0SPSR位定义
------------------------------------------*/
#define ABRT        3//从机中止。该位为1 时表示发生了从机中止。当读取该寄存器时,该位清零
#define MODF        4//模式错误。为1 时表示发生了模式错误。
#define ROVR        5//读溢出。为1 时表示发生了读溢出。当读取该寄存器时,该位清零。
#define WCOL        6//写冲突。为1 时表示发生了写冲突
#define SPIF        7//SPI 传输完成标志。为1 时表示一次SPI 数据传输完成。

/*-----------------------------------------
        功率控制寄存器PCON位定义
------------------------------------------*/
#define IDL         0//空闲模式
#define PD          1//掉电模式
#define PDBOD       2//空闲模式

/*-----------------------------------------
        外设功率控制寄存器PCONP位定义
------------------------------------------*/
#define PCTIM0      1//定时器0使能
#define PCTIM1      2//定时器1使能
#define PCURT0      3//UART0使能
#define PCURT1      4//UART1使能
#define PCPWM0      5//PWM0使能
#define PCI2C0      7//I2C0接口使能
#define PCSPI0      8//SPI接口使能
#define PCRTC       9//RTC使能
#define PCSPI1     10//SSP接口使能
#define PCAD0      12//A/D转换器0使能
#define PCI2C1     19//I2C1接口使能
#define PCAD1      20//A/D转换器1使能
/*-----------------------------------------
        WDMOD位定义
------------------------------------------*/
#define WDEN        0//
#define WDRESET     1//
#define WDTOF       2//
#define WDINT       3//
/*-----------------------------------------
        PLL 控制寄存器位定义
------------------------------------------*/
#define PLLEN       0//PLL 使能
#define PLLLK       1//PLL 连接
/*-----------------------------------------
        PLL 状态寄存器位定义
------------------------------------------*/
#define PLLE        8//PLL 使能位
#define PLLC        9//PLL 连接位
#define PLOCK      10//PLL 锁定状态
/*--------------------------------------------------
        外部中断标志寄存器EXTINT位定义
---------------------------------------------------*/
#define EINT0  0//EXTINT.0//写'1'清除EINT0中断标志
#define EINT1  1//EXTINT.1//写'1'清除EINT1中断标志
#define EINT2  2//EXTINT.2//写'1'清除EINT2中断标志
#define EINT3  3//EXTINT.3//写'1'清除EINT3中断标志
/*--------------------------------------------------
        外部中断方式寄存器EXTMODE位定义
---------------------------------------------------*/
#define EXTMODE0 0//EXTMODE.0//该位为0时,EINT0使用电平激活;该位为1时,EINT0使用边沿激活。
#define EXTMODE1 1//EXTMODE.1//该位为0时,EINT1使用电平激活;该位为1时,EINT1使用边沿激活。
#define EXTMODE2 2//EXTMODE.2//该位为0时,EINT2使用电平激活;该位为1时,EINT2使用边沿激活。
#define EXTMODE3 3//EXTMODE.3//该位为0时,EINT3使用电平激活;该位为1时,EINT3使用边沿激活。
/*--------------------------------------------------
        外部中断极性寄存器EXTPOLAR位定义  
---------------------------------------------------*/
#define EXTPOLAR0 0//EXTPOLAR.0//该位为0时,EINT0低电平或下降沿有效(由EXTMODE0决定)。
                   //该位为1时,EINT0高电平或上升沿有效(由EXTMODE0决定)。
#define EXTPOLAR1 1//EXTPOLAR.1//该位为0时,EINT1低电平或下降沿有效(由EXTMODE1决定)。
                   //该位为1时,EINT1高电平或上升沿有效(由EXTMODE1决定)。
#define EXTPOLAR2 2//EXTPOLAR.2//该位为0时,EINT2低电平或下降沿有效(由EXTMODE2决定)。
                   //该位为1时,EINT2高电平或上升沿有效(由EXTMODE2决定)。
#define EXTPOLAR3 3//EXTPOLAR.3//该位为0时,EINT3低电平或下降沿有效(由EXTMODE3决定)。
                   //该位为1时,EINT3高电平或上升沿有效(由EXTMODE3决定)。
/*--------------------------------------------------
        外部中断唤醒寄存器EXTWAKE位定义  
---------------------------------------------------*/
#define EXTWAKE0  0//EXTWAKE.0//该位为1时,使能EINT0将处理器从掉电模式唤醒。
#define EXTWAKE1  1//EXTWAKE.1//该位为1时,使能EINT1将处理器从掉电模式唤醒。
#define EXTWAKE2  2//EXTWAKE.2//该位为1时,使能EINT2将处理器从掉电模式唤醒。
#define EXTWAKE3  3//EXTWAKE.3//该位为1时,使能EINT3将处理器从掉电模式唤醒。
#define BODWAKE  14//EXTWAKE.14//该位为1时,BOD中断产生时可将处理器从掉电模式唤醒。
#define RTCWAKE  15//EXTWAKE.15//该位为1时,RTC中断产生时可将处理器从掉电模式唤醒。
/*---------------------------------------------------------------------------------------
  GPIO管脚功能配置
应用示例:
  PINSEL->PIN_SEL0  |= (P0_0_TXD0 << P0_0_PINSEL) | (P0_1_RXD0 << P0_1_PINSEL);
                   //选择P0.0和P0.1为UART0的输出输入引脚
  PINSEL->PIN_SEL0  |= (P0_3_EINT1 << P0_3_PINSEL); //选择P0.3为INT1外部中断引脚
  PINSEL->PIN_SEL0  |= (P0_14_EINT1 << P0_14_PINSEL); //选择P0.14也可为INT1外部中断引脚
  PINSEL->PIN_SEL0  |= (P0_1_EINT0 << P0_1_PINSEL)   //选择P0.1为INT0外部中断引脚
  PINSEL->PIN_SEL1  |= (P0_16_EINT0 << P0_16_PINSEL); //选择P0.16也可为INT0外部中断引脚
------------------------------------------------------------------------------------------*/
#define P0_0_GPIO      __0//通用数字输入输出管脚
  #define P0_0_TXD0    __1//UART0的发送器输出
  #define P0_0_PWM1    __2//脉宽调制器输出1
#define P0_0_PINSEL    2 * P0_0
#define P0_1_GPIO      __0//通用数字输入输出管脚
  #define P0_1_RXD0    __1//UART0的接收器输入
  #define P0_1_PWM3    __2//脉宽调制器输出3
  #define P0_1_EINT0   __3//**外部中断0输入
#define P0_1_PINSEL    2 * P0_1
#define P0_2_GPIO      __0//通用数字输入输出管脚
  #define P0_2_SCL0    __1//I2C0时钟输入/输出。开漏输出(符合I2C规范)
  #define P0_2_CAP0_0  __2//***定时器0的捕获输入通道0
#define P0_2_PINSEL    2 * P0_2
#define P0_3_GPIO      __0//通用数字输入输出管脚
  #define P0_3_SDA0    __1//I2C0数据输入/输出。开漏输出(符合I2C规范)
  #define P0_3_MAT0_0  __2//**定时器0的匹配输出通道0
  #define P0_3_EINT1   __3//**外部中断1输入
#define P0_3_PINSEL    2 * P0_3
#define P0_4_GPIO      __0//通用数字输入输出管脚
  #define P0_4_SCK0    __1//SPI0的串行时钟。SPI时钟从主机输出,从机输入
  #define P0_4_CAP0_1  __2//**定时器0的捕获输入通道1
  #define P0_4_AD0_6   __3//A/D转换器0输入6。该模拟输入总是连接到相应的管脚
#define P0_4_PINSEL  2 * P0_4
#define P0_5_GPIO      __0//通用数字输入输出管脚
  #define P0_5_MISO0   __1//SPI0主机输入从机输出端。从机到主机的数据传输
  #define P0_5_MAT0_1  __2//**定时器0的匹配输出通道1
  #define P0_5_AD0_7   __3//A/D转换器0输入7。该模拟输入总是连接到相应的管脚
#define P0_5_PINSEL    2 * P0_5
#define P0_6_GPIO      __0//通用数字输入输出管脚
  #define P0_6_MOSI0   __1//SPI0主机输出从机输入端。主机到从机的数据传输
  #define P0_6_CAP0_2  __2//***定时器0的捕获输入通道2
  #define P0_6_AD1_0   __3//A/D转换器1输入0。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_6_PINSEL    2 * P0_6
#define P0_7_GPIO      __0//通用数字输入输出管脚
  #define P0_7_SSEL0   __1//SPI0从机选择。选择SPI接口用作从机
  #define P0_7_PWM2    __2//脉宽调制器输出2
  #define P0_7_EINT2   __3//**外部中断2输入
#define P0_7_PINSEL    2 * P0_7
#define P0_8_GPIO      __0//通用数字输入输出管脚
  #define P0_8_TXD1    __1//UART1的发送器输出
  #define P0_8_PWM4    __2//脉宽调制器输出4
  #define P0_8_AD1_1   __3//A/D转换器1输入1。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_8_PINSEL    2 * P0_8
#define P0_9_GPIO      __0//通用数字输入输出管脚
  #define P0_9_RXD1    __1//UART1的接收器输入
  #define P0_9_PWM6    __2//脉宽调制器输出6
  #define P0_9_EINT3   __3//***外部中断3输入
#define P0_9_PINSEL    2 * P0_9
#define P0_10_GPIO     __0//通用数字输入输出管脚
  #define P0_10_RTS1   __1//UART1请求发送出端(仅用于LP138)
  #define P0_10_CAP1_0 __2//定时器1的捕获输入通道0
  #define P0_10_AD1_2  __3//A/D转换器1输入2。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_10_PINSEL   2 * P0_10
#define P0_11_GPIO     __0//通用数字输入输出管脚
  #define P0_11_CTS1   __1//UART1清除发送入端(仅用于LP138)
  #define P0_11_CAP1_1 __2//定时器1的捕获输入通道1
  #define P0_11_SCL1   __3//I2C1时钟输入/输。开漏输出(符合I2C规范)
#define P0_11_PINSEL   2 * P0_11
#define P0_12_GPIO     __0//通用数字输入输出管脚
  #define P0_12_DSR1   __1//UART1数据设置就绪端(仅用于 LPC2138)
  #define P0_12_MAT1_0 __2//定时器1的匹配输出通道0
  #define P0_12_AD1_3  __3//A/D转换器1输入3。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_12_PINSEL   2 * P0_12
#define P0_13_GPIO     __0//通用数字输入输出管脚
  #define P0_13_DTR1   __1//UART1数据终端就绪
  #define P0_13_MAT1_1 __2//定时器1的匹配输出通道1
  #define P0_13_AD1_4  __3//A/D转换器1输入4。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_13_PINSEL   2 * P0_13
#define P0_14_GPIO     __0//通用数字输入输出管脚
  #define P0_14_DCD1   __1//UART1数据载波检测输入(仅用于 LPC2138)
  #define P0_14_EINT1  __2//**外部中断1输入
  #define P0_14_SDA1   __3//I2C1数据输入/输出。开漏输出(符合I2C规范)
#define P0_14_PINSEL   2 * P0_14
#define P0_15_GPIO     __0//通用数字输入输出管脚
  #define P0_15_RI1    __1//UART1铃响指示输入(仅用于 LPC2138)
  #define P0_15_EINT2  __2//**外部中断2输入
  #define P0_15_AD1_5  __3//A/D转换器1输入5。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)
#define P0_15_PINSEL   2 * P0_15
#define P0_16_GPIO     __0//通用数字输入输出管脚
  #define P0_16_EINT0  __1//**外部中断0输入
  #define P0_16_MAT0_2 __2//**定时器0的匹配输出通道2
  #define P0_16_CAP0_2 __3//***定时器0的捕获输入通道2
#define P0_16_PINSEL   2 * P0_0

#define P0_17_GPIO     __0//通用数字输入输出管脚
  #define P0_17_CAP1_2 __1//**定时器1的捕获输入通道2

⌨️ 快捷键说明

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