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

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);
}

你可能感兴趣的:(TM4C123GXL,LaunchPad)