This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
extern void Int_GPIOF_Handler(void)
{
unsigned long ulStatus;
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0xFF);
ulStatus = GPIOIntStatus(GPIO_PORTF_BASE, true); // 读取中断状态
GPIOIntClear(GPIO_PORTF_BASE, ulStatus); // 清除中断状态
}
int main (void)
{
//配置LED引脚
SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE,GPIO_PIN_4);
GPIOIntRegister(INT_GPIOF,&Int_GPIOF_Handler); //配置中断函数
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN| SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_DIR_MODE_IN);
GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_LOW_LEVEL);
GPIOIntEnable(GPIO_PORTF_BASE, GPIO_PIN_4);
IntEnable(INT_GPIOF);
IntMasterEnable();
Int_GPIOF_Handler();
while(1)
{
SysCtlDelay(320000);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2,0xFF);
SysCtlDelay(320000);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2,0x00);
}
}
1.中断函数是应该不用加extern的
2.中断函数Int_GPIOF_Handler(void)放在主函数中,这个做法是没什么用的。应该放在启动文件中。
3.GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2,0xFF);第三个参数,好像不能这么写的,或操作所有的gpio的。