我想写一个中断程序,用A2口的下降沿进入中断,但写出来貌似进不了中断。
这个片子资料太少了,又都是英文。只好冒昧前来问众位了。
以下是程序:
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/interrupt.h"
#include "driverlib/timer.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "inc/hw_gpio.h"
#include "inc/hw_ints.h"
#define Delay_ms(x) SysCtlDelay((long)(SysCtlClockGet( )*(double)x /3000 ))
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 8);
GPIOPadConfigSet(GPIO_PORTA_BASE,GPIO_PIN_2,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);// 设置PA2为2MA,上拉输入
GPIODirModeSet(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_DIR_MODE_IN);//设置GPIO输入
IntMasterEnable();
GPIOIntEnable(GPIO_PORTA_BASE,GPIO_PIN_2);
GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2);
GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_FALLING_EDGE);
while(1)
{
}
}
void GPIOAIntHandler(void) //
{
unsigned long ulStatus;
ulStatus = GPIOIntStatus(GPIO_PORTA_BASE, true); //
GPIOIntClear(GPIO_PORTA_BASE, ulStatus); //
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 4);
if (ulStatus&GPIO_PIN_2) // GPIO_PIN_2
{
// GPIOIntDisable(GPIO_PORTD_BASE,GPIO_PIN_2); // ??GPIOD????
Delay_ms(100);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 0);
}
}