主题中讨论的其他器件:MSPM0C1104、SysConfig、 MSPM0G3507
尊敬的 TI 团队:
我正在我们的一个项目中使用 MSPM0C1104、我需要使用低功耗模式。 我正在使用 DL_SYSCTL_setPowerPolicySHUTDOWN ()将 MCU 发送到关断状态、这会使 CPU 处于关断模式。 现在我想使用 GPIO 将其唤醒、根据数据表、引脚 PA0可承受5V 电压、并且能够唤醒。


我将它配置为输入中断、但 uC 没有被唤醒。
根据我的理解、如果不是 IO 中断发生时、UC 应唤醒、请告诉我如何唤醒 UC。 以下是在休眠状态下发送此消息的代码。
SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
{
DL_GPIO_enableGlobalFastWake(GPIOA);
DL_GPIO_initDigitalInput(GPIO_Wake_Intr_IOMUX);
DL_GPIO_initDigitalOutput(GPIO_LEDS_USER_LED_1_IOMUX);
DL_GPIO_initDigitalOutput(GPIO_LEDS_USER_TEST_IOMUX);
DL_GPIO_setPins(GPIOA, GPIO_LEDS_USER_LED_1_PIN |
GPIO_LEDS_USER_TEST_PIN);
DL_GPIO_enableOutput(GPIOA, GPIO_LEDS_USER_LED_1_PIN |
GPIO_LEDS_USER_TEST_PIN);
DL_GPIO_setLowerPinsPolarity(GPIOA, DL_GPIO_PIN_0_EDGE_RISE_FALL);
DL_GPIO_clearInterruptStatus(GPIOA, GPIO_Wake_Intr_PIN);
DL_GPIO_enableInterrupt(GPIOA, GPIO_Wake_Intr_PIN);
}
int main(void)
{
SYSCFG_DL_init();
/*
* Turn OFF LED if SW is open, ON if SW is closed.
* LED starts OFF by default.
*/
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
NVIC_EnableIRQ(GPIO_Wake_INT_IRQN);
while (1) {
if(shutdownEn) {
shutdownEn = 0;
DL_SYSCTL_setPowerPolicySHUTDOWN();
__WFI();
}
__WFI();
}
}
void GPIOA_IRQHandler(void)
{
/* If SW is high, turn the LED off */
if (DL_GPIO_readPins(GPIO_Wake_PORT, GPIO_Wake_Intr_PIN)) {
//Here sys should wake up..
DL_SYSCTL_releaseShutdownIO();
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
}
/* Otherwise, turn the LED on */
else {
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
shutdownEn = 1;
}
}
请告诉我如何解决此问题。
此致、
阿曼

