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.

[参考译文] MSP430F5438A:GPIO 中断标志被置位

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1324244/msp430f5438a-gpio-interrupt-flag-set

器件型号:MSP430F5438A

您好!

设置中断标志的因素是什么?

2。 我试图将 GPIO 中断配置为仅从高电平到低电平[下降沿]发生、但在引脚从低电平变为高电平时标志设置为1。 导致此问题的原因是什么?

我的配置如下所示。

P1DIR &=~BIT2;  
P1REN |= BIT2;
P1IE |= BIT2;
P1IES |= BIT2;
P1IFG &=~BIT2;

谢谢你!

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

    您是否描述了在(a)这个过程中或(b)一段时间后发生的事情?  

    如果是(A)、请记住设置 P1IES 可能导致 P1IFG 被设置、具体取决于输入的状态[请参阅用户指南(SLAU208Q)第12.2.7.2节("注释")]。

    如果是(b)、请考虑 P1OUT 在复位时"未定义"[请参阅 UG 表12-2]、因此序列可能会创建上拉或下拉。 您可能应该将 P1OUT.2设置为一个已知的值。

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

    每当引脚从低电平变为高电平时、该时间中断就会发生、但在本例中、该中断不会发生、仅当它从高电平变为低电平时才会发生。 请推荐本例中的配置和问题。
    注意:只会发生重启时间。

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

    首先在上面的代码的开头添加"P1OUT |= BIT2;"。 这可以确保您设置的是上拉电阻器。

    如果这没有任何变化、请描述您的电路和测试顺序。

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

    正如您说的"P1OUT |= BIT2;添加 此行、但  仍将中断标志设置为高电平。
    还有其他可以配置的东西吗?

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

    我看不到您的配置明显有任何问题、因此我猜测此代码片段之外可能有内容。 这就是我问您的电路和测试顺序的原因。

    如果(例如)您使用物理按钮/开关来生成边沿、则可以肯定地看到开关抖动、其中包括上升沿和下降沿。

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

    "如果(例如)您使用物理按钮/开关来生成边沿、"

    或者、尤其是在您只是将一根导线粘在 LaunchPad 的引脚上时!

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

    这取决于 GIE 是否被置位、但是在置位 P1IE 后清零 P1IFG 是不好的。 如果 GIE 被置位、那么将 P1IE 置位会导致一个立即中断。 然后再清除 P1IFG。

    最后应进行 P1IE 设置。