您的位置:首页 > 其它

TM4C123GXL GPIO 中断 配置(学习笔记)

2014-08-21 23:32 246 查看
TM4C123GXL LaunchPad 所有的IO都可以作为中断输入源,
LaunchPad的按键是没有上拉电阻的,直接通过一个0ohm电阻接地了,所以还要自己配置上拉电阻
下面是主要代码
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_ints.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "driverlib/interrupt.h"
//PortF的中断进程
void PortFIntHandler(void);
void main(void)
{

//配置时钟
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
//	使能外设 所有外设操作前都要使能,否则会跳转到FaultISR()死循环
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//GPIO注册中断
GPIOIntRegister(GPIO_PORTF_BASE, PortFIntHandler);
//PF4作为中断输入源对应LaunchPad的按键1 SW1
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
//PF2配置为输出模式 对应LaunchPad的蓝色LED
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);
//配置PF4为上拉电阻,输出电流能力2mA
GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);
//终端类型为下降沿触发
GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4 , GPIO_FALLING_EDGE);
//使能PF4中断
GPIOIntEnable(GPIO_PORTF_BASE, GPIO_PIN_4);
//全局中断
IntMasterEnable();
//PF2高电平 点亮蓝色LED
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,GPIO_PIN_2);

while(1)
{
// hehe
}
}

/**
* PortF中断程序
*/
void PortFIntHandler(void)
{
//清除中断标志
GPIOIntClear(GPIO_PORTF_BASE, GPIO_PIN_4);
//PF2低电平 关闭蓝色LED
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2,0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息