基本信息
文件名称:NXP 系列:LPC1768 (适用于复杂娱乐设备)_(3).LPC1768外设接口.docx
文件大小:28.69 KB
总页数:32 页
更新时间:2025-06-15
总字数:约1.7万字
文档摘要

PAGE1

PAGE1

LPC1768外设接口

1.GPIO接口

1.1GPIO基本概念

GPIO(GeneralPurposeInput/Output)是通用输入输出端口,允许开发人员通过软件配置端口的功能,实现输入、输出、中断等多种功能。LPC1768具有多个GPIO端口,每个端口包含多个引脚,可以灵活配置以满足不同的应用需求。

1.2GPIO配置

LPC1768的GPIO配置主要通过寄存器来实现。以下是主要的GPIO寄存器:

PINSEL寄存器:用于选择引脚的功能。

FIODIR寄存器:用于设置引脚的方向(输入或输出)。

FIOSET和FIOCLR寄存器:用于设置和清除引脚的输出状态。

FIOPIN寄存器:用于读取引脚的输入状态。

FIOINT寄存器:用于配置引脚的中断功能。

1.3GPIO代码示例

1.3.1配置GPIO引脚

假设我们需要将P0.0引脚配置为输出模式,并将P0.1引脚配置为输入模式。以下是实现该配置的代码示例:

#includeLPC177x_8x.h

#includeLPC177x_8x_gpio.h

voidGPIO_Configuration(void){

//配置P0.0为输出模式

LPC_PINCON-PINSEL0=~(0x30);//清除P0.0的引脚选择

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

LPC_GPIO0-FIODIR|=(10);//设置P0.0为输出方向

//配置P0.1为输入模式

LPC_PINCON-PINSEL0=~(0x32);//清除P0.1的引脚选择

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

LPC_GPIO0-FIODIR=~(11);//设置P0.1为输入方向

}

intmain(void){

GPIO_Configuration();

//主循环

while(1){

//读取P0.1的输入状态

uint32_tinput_status=(LPC_GPIO0-FIOPIN(11))?1:0;

//根据输入状态设置P0.0的输出状态

if(input_status){

LPC_GPIO0-FIOSET=(10);//设置P0.0为高电平

}else{

LPC_GPIO0-FIOCLR=(10);//设置P0.0为低电平

}

//延时

for(volatileinti=0;i1000000;i++);

}

}

1.4GPIO中断配置

LPC1768的GPIO引脚可以配置为中断输入,当引脚状态发生变化时,可以触发中断。以下是配置P0.1引脚为中断输入的示例代码:

#includeLPC177x_8x.h

#includeLPC177x_8x_gpio.h

#includeLPC177x_8xVIC.h

voidGPIO_Interrupt_Configuration(void){

//配置P0.1为GPIO功能

LPC_PINCON-PINSEL0=~(0x32);

LPC_PINCON-PINSEL0|=(0x02);

//设置P0.1为输入方向

LPC_GPIO0-FIODIR=~(11);

//配置P0.1为上升沿触发中断

LPC_GPIO0-IO0IntEnR=(11);

LPC_GPIO0-IO0IntEnF=0;

//清除中断标志

LPC_GPIO0-IO0IntClr=(11);

//配置中断优先级

LPC_VIC-VectPriority[7]=0x20;//设置为优先级2

//使能中断

LPC_VIC-VectAddr[7]=(uint32_t)GPIO_Interrupt_Handler;

LPC_VIC-VectCn