DA14680 GPIO输出电平休眠后无法保持

DA14680的P3_7外部未连接任何器件,软件配置如下:
hw_gpio_configure_pin_power(HW_GPIO_PORT_3, HW_GPIO_PIN_7, HW_GPIO_POWER_V33);
hw_gpio_configure_pin(HW_GPIO_PORT_3, HW_GPIO_PIN_7, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_GPIO, true);

休眠方式设置为pm_mode_extended_sleep
但系统进入休眠后,P3_7的电平就变低了。是哪里配置有问题吗?

我看到在sys_power_mgr.c文件中有段代码:
if (dg_configBLACK_ORCA_IC_REV == BLACK_ORCA_IC_REV_A) {
hw_cpm_activate_pad_latches();
hw_cpm_power_down_periph_pd();
hw_cpm_wait_per_power_down();
}
其中的hw_cpm_activate_pad_latches()已经将PAD_LATCH_EN位清零,硬件已经将管脚状态锁存,但为什么没起作用呢?

  • Hi Song,

    很可能你看到的现象不是睡眠后状态没有保持,而是睡眠醒来以后系统会调用外设初始化的函数,将引脚状态初始化了。

    建议你可以尝试在初始化引脚的时候使用一个变量来储存你想要的状态,或者在初始化的函数中不要初始化你需要保持的引脚