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.

[参考译文] TM4C123GH6PM:如何在 Tiva C Launchpad 上为 SW1和 SW2正确配置中断?

Guru**** 2350610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/612371/tm4c123gh6pm-how-do-i-properly-configure-interrupts-for-sw1-and-sw2-on-the-tiva-c-launchpad

器件型号:TM4C123GH6PM

以下是我的主要函数:

#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 时出现了什么错误。 这里有人能帮我解决这个问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我强烈建议您使用 TivaWare 中提供的驱动 程序、而不是直接写入寄存器。 使用成熟的例程编写代码时、您将获得高效支持、并且您将在示例中获得更好的支持、并在论坛上获得其他用户的支持。 TivaWare 文档(第285页)中有一个关于使用 GPIOA 进行中断的示例。 您可以按照此示例将其更改为 GIOPF。