主题中讨论的其他器件:SysConfig
工具与软件:
我尝试在每次唤醒 MCU 3次闪烁后关闭它。 但唤醒引脚充当门控、并立即关断、而不会闪烁。 以下是随附的代码:
#include
#include
#include
#include
#include
#include
#include
#include DeviceFamily_structPath (driverlib/sys_ctrl.h)
#include DeviceFamily_structPath (driverlib/pwr_ctrl.h)
#include "ti_drivers_config.h"
//用于对关断进行门控的信标
SemaphoreP_Struct semStruct;
SemaphoreP_Handle semHandle;
void * mainThread (void * arg0){
//初始化 LED
//LED_Handle led0Handle = LED_open (CONFIG_LED_0、NULL);
LED_Handle led1Handle = LED_open (CONFIG_LED_1、NULL);
PowerCC26X2_ResetReason resetReason = PowerCC26X2_getResetReason ();
/*如果从 SHUTDOWN 模式唤醒、执行闪烁序列*/
if (resetReason=PowerCC26X2_reset_shutdown_IO){
PowerCC26X2_releaseLatches ();//关断后禁用 IO 锁存器
//使 LED1闪烁三次以指示唤醒
led_startBlinking (led1Handle、500、3);
//延迟以允许 LED 闪烁序列完成
usleep (2000000);// 2秒延迟
}
//配置 GPIO 唤醒引脚并启动自动关断
GPIO_setConfig (CONFIG_GPIO_WAKEUP、GPIO_CFG_IN_PD | GPIO_CFG_SHUTDOWN_WAKE_HIGH);
//在唤醒操作后直接进入 SHUTDOWN 模式
POWER_SHUTDOWN (0、0);
//失效防护:不应达到该环路、因为关断会重置器件
while (1){}
}