以下是我的主要函数:
#include
#include "tm4c123ghp6.h"
#include "tm4c_CMSIS.h"
#include "bsp.h"
int main()
{
//初始化并启用 GPIOF
SYSCTl->RCGC2 |= 0x20;//禁用 GPIOF 时钟门控
SYSCTL->GPIOHSCTL |= 0x20;//启用高速总线
GPIOF_HS->LOCK |= GPIO_KEY;//解锁 GPIOF
GPIOF_HS->CR |= 0xFF;//启用 GPIOF 提交
GPIOF_HS->PUR |= 0x11;//将 GPIOF 按钮引脚设置为上拉
GPIOF_HS->DIR |= 0x0E;//将 GPIOF LED 引脚设置为输出
GPIOF_HS->DEN |= 0x1F;//将 GPIOF 引脚设置为数字使能
//为按钮配置中断
_enable_interrupt ();
_NVIC_setpriority (30、1);
GPIOF_HS->IM &= 0x00;//屏蔽所有 GPIOF 中断,防止中断
GPIOF_HS->IS |= 0x11;//配置 GPIOF 按钮引脚以进行低级检测
GPIOF_HS->IM |= 0x11;//取消屏蔽 GPIOF 按钮中断,启用它们
while (1)
{
GPIOF_HS->DATA_Bits [LED_W]= LED_OFF;
}
返回0;
}
我有一个矢量表设置、用于成功实现 SysTick 和 PendSV 处理程序、现在我想弄清楚如何使 GPIOF IRQ 正常工作、但我被骗了、不知道我做了什么错。 我之前已让按钮点亮 LED、因此我知道它们工作正常、但我不确定在初始化按钮以触发 IRQ 时出现了什么错误。 这里有人能帮我解决这个问题吗?