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

    
    
   
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值