基本信息
文件名称:NXP 系列:LPC1768 (适用于复杂娱乐设备)_(22).LPC1768GPIO高级功能.docx
文件大小:26.36 KB
总页数:29 页
更新时间:2025-06-15
总字数:约1.43万字
文档摘要

PAGE1

PAGE1

LPC1768GPIO高级功能

1.GPIO引脚配置

1.1GPIO引脚功能选择

LPC1768微控制器具有多个GPIO引脚,这些引脚可以配置为不同的功能。每个引脚可以配置为普通输入/输出(GPIO)或多种外设功能(如UART、I2C、SPI等)。通过配置寄存器,可以灵活选择引脚的功能。

1.1.1引脚功能选择寄存器

LPC1768提供了PINSEL寄存器来选择引脚功能。PINSEL寄存器分为多个部分,每个部分对应一组引脚。例如,PINSEL0控制引脚P0.0到P0.15,PINSEL1控制引脚P0.16到P0.31,以此类推。

//配置P0.0为GPIO功能

LPC_PINCON-PINSEL0=~(30);//清除P0.0的功能选择位

LPC_PINCON-PINSEL0|=(00);//设置P0.0为GPIO功能

//配置P0.0为UART0_TXD

LPC_PINCON-PINSEL0=~(30);//清除P0.0的功能选择位

LPC_PINCON-PINSEL0|=(10);//设置P0.0为UART0_TXD功能

1.2GPIO引脚模式配置

除了功能选择,还需要配置引脚的模式,如输入、输出、上拉、下拉等。通过FIODIR寄存器可以设置引脚的方向,FIOMASK寄存器可以设置引脚的掩码,FIOPIN寄存器可以读取引脚的状态,FIOSET和FIOCLR寄存器可以设置和清除引脚的输出状态。

1.2.1引脚方向配置

//将P0.0配置为输出

LPC_GPIO0-FIODIR|=(10);

//将P0.0配置为输入

LPC_GPIO0-FIODIR=~(10);

1.2.2引脚状态读取

//读取P0.0的状态

uint32_tpin_state=(LPC_GPIO0-FIOPIN(10))?1:0;

1.2.3引脚输出设置

//将P0.0设置为高电平

LPC_GPIO0-FIOSET=(10);

//将P0.0设置为低电平

LPC_GPIO0-FIOCLR=(10);

1.3引脚上拉和下拉配置

LPC1768提供了引脚上拉和下拉配置,通过PINMODE寄存器可以设置引脚的上拉或下拉模式。PINMODE寄存器分为多个部分,每个部分对应一组引脚。

1.3.1引脚上拉配置

//将P0.0配置为上拉模式

LPC_PINCON-PINMODE0=~(30);//清除P0.0的模式选择位

LPC_PINCON-PINMODE0|=(00);//设置P0.0为上拉模式

1.3.2引脚下拉配置

//将P0.0配置为下拉模式

LPC_PINCON-PINMODE0=~(30);//清除P0.0的模式选择位

LPC_PINCON-PINMODE0|=(10);//设置P0.0为下拉模式

2.GPIO中断配置

LPC1768的GPIO引脚支持中断功能,可以通过配置中断寄存器来实现引脚的中断功能。GPIO中断可以配置为上升沿、下降沿或电平触发。

2.1GPIO中断寄存器

FIOINTMODE:中断模式选择寄存器

FIOIENR:中断使能寄存器

FIOIFR:中断标志寄存器

FIOIPSER:中断极性选择寄存器

FIOICR:中断清除寄存器

2.2中断模式选择

//配置P0.0为上升沿中断

LPC_GPIOINT-IO0IntEnR=~(10);//清除下降沿中断使能

LPC_GPIOINT-IO0IntEnF|=(10);//设置上升沿中断使能

LPC_GPIOINT-IO0IntClr=(10);//清除中断标志

//配置P0.0为下降沿中断

LPC_GPIOINT-IO0IntEnR|=(10);//设置下降沿中断使能

LPC_GPIOINT-IO0IntEnF=~(10);//清除上升沿中断使能

LPC_GPIOINT-IO0IntClr=(10);//清除中断标志

2.3中断处理函数

在配置中断后,需要编写中断处理函数来响应中断事件。LPC1768使用NVIC(NestedVectoredInterruptController)来管理中断。

2.3.1编写中断处理函