无法在禁用一次后启用LED引脚

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
Samsonleomarch.
离线
最后一次露面:2年3周前
加入:2018-10-17 17:57
无法在禁用一次后启用LED引脚

我觉得这是一个愚蠢的问题,但我似乎无法找到答案。

我正在DA14683上使用LED引脚来驱动显示器的背光。

我有这段代码,在我的任务中,我每5秒就在开启和休止之间切换。背光将最初向上电,但在被禁用后,它永远不会再打开。我知道显示器每隔5秒钟进出睡眠模式(我正在观看当前消耗),但没有背光。

对于它的价值,我认为这是设备上睡眠模式的问题。当我将设备设置为pm_set_sleep_mode时(pm_mode_active);而不是Extended_sleep我能够使用以下代码重新打开LED引脚。

有任何想法吗?


void显示屏(int on_off)
{
如果(on_off)
{
静态Timer2_Config CFG = {
.frequency = 0,
.pwm2_end = 0,
.pwm2_start = 0,
.pwm3_end = 0,
.pwm3_start = 0,
.pwm4_end = 0,
.pwm4_start = 0,
};
hw_timer2_init(&cfg);
hw_timer2_set_division_factor(hw_timer2_div_4);
hw_timer2_set_frequency(100);
hw_timer2_set_pwm_duty_cycle(hw_timer2_pwm_3,127);
hw_timer2_enable();
hw_led_set_led2_src(hw_led_src2_pwm3);
hw_led_enable_led2(真实);
//超出睡眠模式
displaywritecommand(st7789_slpout);
os_delay_ms(10);
displaywritecommand(st7789_dispon);
}
别的
{
hw_led_enable_led2(false);
//进入睡眠模式
displaywritecommand(st7789_slpin);
os_delay_ms(10);
displaywritecommand(st7789_dispoff);
}
}

设备:
PM_DIALOG.
离线
最后一次露面:3天3小时前
职员
加入:2018-02-08 11:03
嗨Samsonleomarch,

嗨Samsonleomarch,

根据DA1468X数据表,默认的GPIO值是下拉。当设备进入睡眠时,系统会丢失所有默认配置。您应该将所有配置放入Periph_init()以防您想要唤醒并在延长睡眠前进行配置。因此,应将所有引脚配置添加到Periph_init()中,该Periph_init()应由prvsetuphardware()执行。通过这种方式,当您醒来时,Power Manager将使用先前状态重新配置引脚。请问你是否已经完成了这个?

谢谢,PM_DIALOG.

Samsonleomarch.
离线
最后一次露面:2年3周前
加入:2018-10-17 17:57
我有,是的。

我有,是的。

我昨晚发现,如果我将pm_set_sleep_mode(pm_mode_active)添加到上的情况下,而pm_set_sleep_mode(pm_mode_extendding_sleep)到关闭案例,则设备按照我想要的操作进行操作。然而,这感觉就像一个绑带而不是真正的修复。

PM_DIALOG.
离线
最后一次露面:3天3小时前
职员
加入:2018-02-08 11:03
嗨Samsonleomarch,

嗨Samsonleomarch,

为混乱道歉,我刚刚删除了我的答案,这是错误的。很高兴你识上你的问题。如果您发现任何对其他客户有用的帖子,请将其标记为“已接受”。如果您有任何其他问题/问题,请您告诉我吗?

谢谢,PM_DIALOG.

Samsonleomarch.
离线
最后一次露面:2年3周前
加入:2018-10-17 17:57
是我的解决方案是正确的

我的解决方案是否正确接近这个?

PM_DIALOG.
离线
最后一次露面:3天3小时前
职员
加入:2018-02-08 11:03
嗨Samsonleomarch,

嗨Samsonleomarch,

可能在睡眠前没有保留GPIO。我不知道你在固件中完成了什么,但我想,是的,这是一个解决问题的解决方案。

谢谢,PM_DIALOG.