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

⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support.我们将在未来几天内修复bug/优化搜索和标记。
6个员额/0个新员额
最后一篇文章
SamsonLeoMarch
离线
最后一次见到:2年5个月前
加入:2018-10-17 17:57
禁用一次后无法使LED引脚启用

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

我正在使用da14683上的led引脚驱动显示器的背光。

我有这个代码,在我的任务中,我每5秒就在开和关之间切换。背光最初会通电,但禁用一次后,将不再通电。我知道显示器每5秒会进入或退出睡眠模式(我正在观察当前消耗),但没有背光。

值得一提的是,我认为这是设备睡眠模式的问题。当我将设备设置为pm_set_sleep_mode(pm_mode_active)时;不用延长睡眠时间,我可以用下面的代码重新打开LED引脚。

有什么想法吗?


无效显示电源(int ON\U OFF)
{
如果(开/关)
{
静态计时器2\u配置cfg={
.频率=0,
.pwm2_end=0,
.pwm2_start=0,
.pwm3_end=0,
.pwm3_开始=0,
.pwm4_end=0,
.pwm4_start=0,
};
hw_timer2_init(&cfg);
hw_timer2_set_division_factor(hw_timer2_DIV_4);
硬件定时器2设置频率(100);
硬件定时器2设置pwm占空比(硬件定时器2 pwm 3,127);
hw_timer2_enable();
hw_led_set_led2_src(hw_led_SRC2_PWM3);
hw_led_enable_led 2(真);
//脱离睡眠模式
显示写命令(ST7789_SLPOUT);
操作系统延迟毫秒(10);
显示写命令(ST7789_DISPON);
}
其他的
{
hw_led_enable_led 2(假);
//进入睡眠模式
显示写命令(ST7789slpin);
操作系统延迟毫秒(10);
显示写命令(ST7789_disoff);
}
}

设备:
PM_对话框
离线
最后一次见到:4天22小时前
工作人员
加入:2018-02-08 11:03
嗨,SamsonLeoMarch,

嗨,SamsonLeoMarch,

根据DA1468x数据表,默认GPIO值为下拉。当设备进入睡眠状态时,系统将丢失所有默认配置。您应该将所有配置放入periph_init()中如果您想唤醒并拥有扩展睡眠之前的配置,那么所有的管脚配置都应该添加到periph_init()中,该配置应该由prvSetupHardware()执行。这样,当您醒来时,电源管理器将使用以前的状态重新配置管脚。请您指出您是否已经这样做了?

谢谢,下午好

SamsonLeoMarch
离线
最后一次见到:2年5个月前
加入:2018-10-17 17:57
我有,是的。

我有,是的。

我昨晚发现,如果我把pm_set_sleep_mode(pm_mode_active)添加到打开的情况下,把pm_set_sleep_mode(pm_mode_extended_sleep)添加到关闭的情况下,设备就会按照我的意愿运行。然而,这感觉像是一个绷带,而不是一个真正的修复。

PM_对话框
离线
最后一次见到:4天22小时前
工作人员
加入:2018-02-08 11:03
嗨,SamsonLeoMarch,

嗨,SamsonLeoMarch,

抱歉,我刚刚删除了我的答案,这是一个错误。很高兴你解决了你的问题。如果你发现任何对其他客户有用的帖子,请将其标记为“已接受”。如果你有任何其他问题,请告诉我?

谢谢,下午好

SamsonLeoMarch
离线
最后一次见到:2年5个月前
加入:2018-10-17 17:57
我的解决方案正确吗

我的解决方案是正确的方法吗?

PM_对话框
离线
最后一次见到:4天22小时前
工作人员
加入:2018-02-08 11:03
嗨,SamsonLeoMarch,

嗨,SamsonLeoMarch,

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

谢谢,下午好