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.

[参考译文] LP-MSPM0G3507:按钮放大器存在问题;LED

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1394342/lp-mspm0g3507-problem-with-button-leds

器件型号:LP-MSPM0G3507
主题中讨论的其他器件:MSPM0G3507

工具与软件:

尊敬的所有人:

我不熟悉微控制器编程领域、开始在 Launchpad 上对 MSPM0G3507进行编程。 我想通过该 Launchpad 上的按钮 S1来打开 RGB LED LED2。 在本例中、我使用了代码示例"spi_controller_echo_interrupts"中的一部分、其中通过中断发送消息并为此进行了修改。 问题是、当我按下按钮时没有任何反应。 你是否知道我的错误可能是什么? 这是我的 main 文件的副本。 如需更多信息、请联系我。

#include "ti_msp_dl_config.h"

/*假设32MHz CPU_CLK、这将导致大约0.5s 的延迟*/
#define 延迟(16000000)
void turnonled (void);
volatile uint8_t help = 0

int main (void)
  /*为 GPIO 上电、将引脚初始化为数字输出*/
  SYSCFG_DL_init ();
  
  NVIC_EnableIRQ (GPIO_Button_INT_IRQN);


  // Clear Pin (清除引脚)和 Set Pin (设置引脚)命令行
  DL_GPIO_clearPins (GPIO_LEDS_PORT、 GPIO_LEDS_USER_LED_1_PIN 和 GPIO_LEDS_USER_LED_2_PIN 和 GPIO_LEDS_USER_LED_3_PIN);
  //DL_GPIO_setPins (GPIO_LEDS_PORT、GPIO_LEDS_USER_LED_2_PIN | GPIO_LEDS_USER_TEST_PIN);
  
  

 while (1)
  {
    __ WFI()
    if (help =1)
    {
      turnonled()
    }
  }   
    
    
}
void GROUP1_IRQHandler (void)
  switch (DL_Interrupt_getPendingGroup (DL_INTERRUPT_GROUP_1)){
    案例 GPIO_Button_INT_IIDX:
      开关(DL_GPIO_getPendingInterrupt(GPIO_BUTON_PORT )){
        GPIO_IDX_INDET_IIDX 案例 Button_User_:
          /*按下 SWITCHS_USER_SWITCH_1时、启动数据传输*/
          帮助= 1
          休息
        默认值
          休息
      }
      休息
    默认值
      休息
  }
}

void turnonled (void)
  DL_GPIO_setPins (GPIO_LEDS_PORT、GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_TEST_PIN);
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daniel、您好!

    1)。 我想你不需要设置第二个"

     开关 (DL_GPIO_getPendingInterrupt(GPIO_BUTON_PORT )){
              GPIO_IDX_451_IIDX: Button_User_"
    因为所有的 GPIO 中断都在 Interrupt_Group 1中。 因此、您只需要使用  
    "switch (DL_Interrupt_getPendingGroup (DL_INTERRUPT_GROUP_1)){
         案例 GPIO_Button_INT_IIDX:"
    2)。 这是 LP-MSPM0G3507的电路。 请检查您的中断逻辑、您应该将 GPIO 中断设置为"上升沿触发"。 搜索 TI.com 上的"SLAU873C"、可以下载该电路文件。
    3)。 请尝试使用调试模式来逐步调试您的代码。
    此致、
    Janz Bai
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Janz、您好!

    感谢您发送编修。 我解决了这个问题。 输入未正确分配给引脚。 这就是中断无法正常工作的原因。

    我将关闭该线程。

    此致、

    Daniel