|
怀疑是中断处理函数没挂上
你自己定义的中断处理函数
// GPIOJ的中断服务函数
void GPIO_Port_J_ISR(void)
{
//unsigned char ucVal;
unsigned long ulStatus;
volatile unsigned long ulLoop;
ulStatus = GPIOPinIntStatus(GPIO_PORTJ_BASE, true); // 读取中断状态
GPIOPinIntClear(GPIO_PORTJ_BASE, ulStatus); // 清除中断状态,重要
if (ulStatus & KEY) // 如果KEY的中断状态有效
{
GPIOPinWrite(GPIO_PORTF_BASE,PF3,0x08);
for(ulLoop = 0; ulLoop < 600000; ulLoop++)
{
}
GPIOPinWrite(GPIO_PORTF_BASE,PF3,0x00);
for(ulLoop = 0; ulLoop < 600000; ulLoop++)
{
}
}
}
但你的主程序里没有注册中断,那么就算真的发生了中断,程序跳到哪儿去了呢?程序只会跳到中断向量表上,因此进不了中断处理函数。 |
|