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.

[参考译文] MSP432P401R:端口3、4、5、&6.

Guru**** 2551110 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/590401/msp432p401r-port-interrupt-api-s-for-ports-3-4-5-6

器件型号:MSP432P401R

此帖子查找用于处理端口3-6上中断的正确 API 调用。 432技术参考手册的最新修订版清楚地说明端口1-6支持中断。

但是、我只能在 MSP432驱动程序库中找到对 GPIO_clearInterruptFlag()的引用。

MAP_GPIO_clearInterruptFlag()仅在端口1和2上可用。

应用应该如何处理端口3-6的中断?

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

    我认为高于1和2的端口会有问题将处理器从某些休眠状态中唤醒、这可能是 driverlib 不使用它们的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请验证我的逻辑。

    库源(可以与我的应用程序一致的代码、而不是 ROM)
    不使用 assert()进行输入参数检查。

    (来自 driverlib gpio.h)
    #define GPIO_PORT_P1 1
    #define GPIO_PORT_P2 2.
    #define GPIO_PORT_P3 3.
    #define GPIO_PORT_P4 4.
    #define GPIO_PORT_P5 5.
    #define GPIO_PORT_P6 6.

    (来自 driverlib gpio.c)
    静态 uint32_t GPIO_PORT_TO_BASI[]=
    {0x00、
    (uint32_t) P1、
    (uint32_t) P1+1、
    (uint32_t) p3、
    (uint32_t) P3+1、
    (uint32_t) P5、
    (uint32_t) P5+1、
    (uint32_t) P7、
    (uint32_t) P7+1、
    (uint32_t) P9、
    (uint32_t) P9+1、
    (uint32_t) PJ
    };

    void GPIO_clearInterruptFlag (uint_fast8_t selectedPort、uint_fast16_t selectedPins)


    uint32_t baseAddress = GPIO_PORT_TO_BASI[selectedPort];


    HWREG16 (baseAddress + OFS_LIB_PAIFG)&=~Ω 选择引脚;


    我是否可以将 GPIO_clearInterruptFlag()与 GPIO_PORT_P3的端口输入一起使用,... GPIO 端口 P6?
    这是否等效于使用 HWREG16()直接写入寄存器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我倾向于相信这些文档。 可能是 P1和 P2限制来自其他一些传统硬件、我们需要 MSP432团队的人员进行评论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我能够验证将其更改为另一个端口实际上是有效的。  我对 GPIO_INPUT_INTERRUPT.c 示例进行了一些快速更改(如下所示)、以便它可以在端口4.0而不是 P1.1上用于中断、 然后、我使用跳线代替开关快速测试了它(我认为在调试中更改 PIN 寄存器也可以模拟按钮)。

    我将 Ping 我们的软件团队、询问为什么包含此评论、但我认为这很可能只是一个旧评论、不再有效。

    e2e.ti.com/.../2364.gpio_5F00_input_5F00_interrupt.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、这真的能帮我解决问题!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    他们说这些库来自430、所以那里有很多传统类型的东西、但是这些评论可能会在以后的修订中被删除、现在已经引起人们的注意了。