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.

[参考译文] MSPM0L1306:MSPM0L1306切换按钮 S1和 S2

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1382535/mspm0l1306-mspm0l1306-switch-button-s1-and-s2

器件型号:MSPM0L1306

工具与软件:

我正在尝试使用 MSPM0L1306板载开关 S1和 S2来控制 LED。

基本上、如果按下开关 S1、红色 LED 将闪烁、如果按下开关 S2、绿色 LED 应闪烁。 我直接读取 GPIO 14和18状态

/* GPIO configuration for SWITCH1 and SWITCH2 */
#define GPIO_SWITCHES_PORT (GPIOA)
#define GPIO_SWITCHES_USER_SWITCH_1_PIN (DL_GPIO_PIN_18)
#define GPIO_SWITCHES_USER_SWITCH_1_IOMUX (IOMUX_PINCM19)
#define GPIO_SWITCHES_USER_SWITCH_2_PIN (DL_GPIO_PIN_14)

#define GPIO_SWITCHES_USER_SWITCH_2_IOMUX (IOMUX_PINCM15)

//Pin configuration:

DL_GPIO_initDigitalInput(GPIO_SWITCHES_USER_SWITCH_1_IOMUX);
DL_GPIO_initDigitalInput(GPIO_SWITCHES_USER_SWITCH_2_IOMUX);

//pin status read

int volatile currentSw1State = DL_GPIO_readPins(GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_1_PIN);
int volatile currentSw2State = DL_GPIO_readPins(GPIO_SWITCHES_PORT, GPIO_SWITCHES_USER_SWITCH_2_PIN);

我看到开关 S2与 S1的行为不同。 开关 S2在按下按钮时无法正常工作、但在我触摸开关或开关周围区域时可以正常工作。

我不知道为什么会发生这种情况。 我可以看到 S1和 S2的开关原理图有以下差异、S2中没有偏置。 我的问题是、我们是否可以互换使用 S1和 S2。 或者在应该使用 S1/S2开关的情况下。

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

    实际上、M0可以配置内部上拉/下拉电阻器。 因此、您还可以检查 GPIO 的配置。

    对于 S1、PA18也是默认 BSL 调用引脚、因此我们需要添加另一个外部下拉电阻。

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

    您好!

    很抱歉、我没有遵循回复。 是否建议在 S1开关周围添加额外的电阻? 或者、是否有任何 SW 配置可使 S1和 S2开关的行为相同。

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

    打开了 内部  M0中的上拉/下拉电阻器。 您可以在软件/寄存器中进行配置。