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编写中断处理函