请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM Thread 中讨论的其他器件:EK-TM4C123GXL
工具/软件:Code Composer Studio
您好!
我尝试在按下 SW1 (PF4)时生成中断、但它似乎不起作用、我不知道我做了什么错误... 以下是 main.c 中的代码:
int main(){ sysctl->RCGCGPIO |=(1U <<5);//启用 GPIOF GPIOF 运行模式*/ SYSCTL->GPIOHBCTL |=(1U <<5);//为 GPIOF 启用 AHB * GPIOF_AHB->DIR |=(LED_RED | LED_BLUE | LED_GREEN); GPIOF_AHB->LOCK = 0x4C4F434B; GPIOF_AHB->CR = 0xFF; GPIOF_AHB->DEN |=(SW2 | LED_RED | LED_BLUE | LED_GREEN | SW1); GPIOF_AHB->PUR |=(SW2 | SW1); GPIOF_AHB->IS &=~(SW1);// SW1的边沿检测 GPIOF_AHB->IBE &=~(SW1);//只有一个边沿生成中断(设置为 IEV) GPIOF_AHB->IEV |= SW1;//上升沿触发中断 __ENABLE_IRQ(); while (1); }
在另一个文件 bsp.c 中、我定义了函数 GPIOPortF_IRQHandler、该函数也在矢量表中:
void GPIOPortF_IRQHandler (void){ GPIOF_AHB->DATA_Bits [LED_RED]= LED_RED; GPIOF_AHB->DATA_Bits [LED_GREEN]= LED_GREEN; GPIOF_AHB->DATA_Bits [LED_blue]= LED_blue; }
当我按下按钮时、GPIORIS 寄存器正在改变、但不调用 GPIOPortF_IRQHandler 函数... 请问我在这里出了什么问题吗?