NXP MCU 技术william hill官网
直播中

王敏

7年用户 1441经验值
私信 关注
[问答]

使用K312芯片测试Wakeup功能时,如何在唤醒时保持输出端高电平?

我在使用K312芯片测试Wakeup功能时,发现OutPut输出的GPIO在进入待机后可以保持高电平输出,但唤醒后会变为低电平。
下面是我的设置:
1. 使用DS工具在Power组件中的StandByMode下选择【Global Padkeeping Enable】,并将pin组件中使用的GPIO的【Pad keep enable】选项设置为Enable。
2.在设置了上述PadKeeping的情况下,在Main中初始化GPIO并设置高电平输出
3.调用函数Power_Ip_SetMode进入StandBy
如何在唤醒时保持输出端高电平?

回帖(1)

香脆面

2024-6-5 17:54:21
在K312芯片唤醒后保持输出端高电平的方法是在唤醒后立即设置GPIO输出为高电平。可以在Main函数里添加唤醒后的代码,如下:

```
int main(void)
{
  //...
  Power_Ip_SetMode(PWRCTRL_POWER_MODE_STANDBY);

  // wait for wakeup

  // add the following code after wakeup
  if(Power_Ip_GetWakeupReason() == PWRCTRL_WAKEUP_REASON_WAKEUP_PIN)
  {
    GPIO_WritePinOutput(GPIOX, GPIO_PIN_NUM_X, GPIO_PIN_STATE_HIGH);
  }

  //...
}
```

其中,GPIOX为需要保持高电平的GPIO端口号,GPIO_PIN_NUM_X为需要保持高电平的GPIO引脚编号,GPIO_PIN_STATE_HIGH为高电平输出状态的宏定义。这样,在唤醒时就会立即设置GPIO输出为高电平,实现保持输出端口高电平的效果。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分