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.

[参考译文] CCS/LAUNCHXL2-RM57L:使用用户按钮进行中断处理以打开 LED

Guru**** 2607635 points
Other Parts Discussed in Thread: HALCOGEN, LAUNCHXL2-RM57L

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/750543/ccs-launchxl2-rm57l-interrupt-handling-to-turn-on-leds-using-the-user-button

器件型号:LAUNCHXL2-RM57L
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

您好!

我能够使用几个 GIO 功能打开电路板上的 LED。 但是、我仍在尝试通过按下用户按钮来打开/关闭 LED。 我认为这可以使用中断来完成、但我不知道如何在 HALCoGen 中启用中断、也不知道如何将其包含在 CCS 中的代码中。 请提供任何帮助。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Andrea、
    您可以尝试以下操作:
    在 HALCoGen 中:
    -转至“Driver Enable”(驱动程序启用)选项卡;
    -可擦除所有驱动程序(使用“Mark/Unmark All drivers”(标记/取消标记所有驱动程序)复选框);
    -选中"Enable GIO drivers";
    -转至 PINMUX 选项卡;
    -选中"GIOB"复选框;
    -转至"GIO"选项卡,然后转至"Port B"选项卡;
    -启用 GIOB[2]上拉;
    -通过单击"启用"(在"下降沿"和"低优先级"之间)来启用生成中断的功能;
    -转至"VIM Channel 0-31"选项卡;
    -启用通道23:"Gio 低电平"中断;
    -从文件菜单中选择"生成代码";

    在 CCS 中;
    -创建与使用 HALCoGen 创建的项目同名的项目;
    -在 CCS Build-->ARM Compiler->Include Options 中添加 HALCoGen 创建的 Include 文件夹;
    -在 sys_main.c 文件中启用中断(_enable_IRQ())和 GIO 通知(gioEnableNotification();)
    GIO ISR 位于 notification.c (gioNotification)中。 您可以在此处切换 LED。

    在这里、您可以找到有关如何使用 HALCoGen 的优秀培训: training.ti.com/hercules-how-tutorial-using-halcogen

    希望这对您有所帮助!

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

    按下用户按钮(端口 B4和 B5)时、LED (端口 B6和 B7)仍然未亮起。 我想知道我是否需要对 sys_main.c 中的 main 函数执行其他操作才能执行该操作。 此外、我是否必须为用户按钮端口启用中断? 感谢你的帮助!

    ~Andrea

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您应该使用 gioEnableNotification (gioPORTB、4)和 gioEnableNotification (gioPORTB、5)来启用 GIOB[4]和 GIOB[5]生成的中断。 此外、必须调用_enable_IRQ ()以启用 MCU IRQ。

    此致、
    米罗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    GIOB[2]端口处理什么? 换句话说、为什么为 GIOB[2]端口启用中断?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这是排印错误。 在某些 LaunchPad 中、GIOB[2]连接到按钮。

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

    根据原理图、我了解控制用户按钮的两个端口是 GIOB[4]和 GIOB[5]。 但是、当我使用这些端口时、用户按钮不会打开/关闭 LED 灯。 然而、当我使用 GIOB[2]时、它确实起作用。 我想知道您能否回答这个问题、以及 GIOB[2]端口的用途是什么? 它的功能是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    GIOB[2]是通用输入/输出(GIO)模块(器件 TRM 的第25节)的一部分。 在 LAUNCHXL2-RM57L 上、它暴露在连接器 J2.10、J10.5和 J14.8上。 它未连接到板载按钮。 如果需要、您可以连接外部按钮。
    要将任何 GIO 用作中断源、必须在 VIM 模块中启用 GIO 中断(高/低)(HALCoGen 中的 VIM 通道0-31选项卡)。 然后、您必须从 GIO 选项卡、端口 A 或端口 B 启用单独的引脚中断。应启用特定引脚的上拉电阻器。
    对于 LAUNCHXL2-RM57L、GIOB[4]和 GIOB[5]被连接至用户按钮。 要从 GIOB[4]和 GIOB[5]生成中断、您应该从 VIM 通道0-31选项卡中启用 GIO 中断(您可以启用低电平和高电平)。 然后、从 GIO 选项卡端口 B、您必须启用 GIOB[4]和 GIOB[5]单个中断、并将 PULL 变为 PULLL。
    在 CCS 中:
    在 sys_main.c 文件中启用中断(_enable_IRQ())和 GIO 通知(gioEnableNotification();)
    在您的情况下、您应该使用:
    gioEnableNotification (gioPORTB、4);和 gioEnableNotification (gioPORTB、5);
    GIO ISR 位于 notification.c (gioNotification)中。 您可以在此处切换 LED。

    此致、
    米罗