zoukankan      html  css  js  c++  java
  • ESP8266——CPU频率更改和深度睡眠模式

    1.电源控制

      ESP8266 能够动态更改 CPU 频率,并进入深度睡眠状态。两者都可用于管理功耗。

    1.1 更改 CPU 频率

      机器模块具有获取和设置 CPU 频率的功能。要获取当前频率,应:

    >>> import machine
    >>> machine.freq()
    80000000

      默认情况下,CPU 以 80MHz 的速度运行。如果您需要更多的处理能力,可以将其更改为 160MHz,但牺牲了当前消耗:

    >>> machine.freq(160000000)
    >>> machine.freq()
    160000000

      您可以在代码执行大量处理时更改为更高的频率,然后在代码完成时更改回。

    1.2深度睡眠模式

      深度睡眠模式将关闭 ESP8266 及其所有外围设备,包括 WiFi(但不包括用于唤醒芯片的实时时钟)。这大大降低了电流消耗,是制造可在电池上运行一段时间的设备的好方法。

    要能够使用深度睡眠功能,您必须将 GPIO16 连接到复位引脚(NodeMCU开发板板上的 RST)。然后,以下代码可用于睡眠和唤醒设备:

    import machine
    
    # configure RTC.ALARM0 to be able to wake the device
    rtc = machine.RTC()
    rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
    
    # set RTC.ALARM0 to fire after 10 seconds (waking the device)
    rtc.alarm(rtc.ALARM0, 10000)
    
    # put the device to sleep
    machine.deepsleep()

       请注意,当芯片从深度睡眠唤醒时,它完全复位,包括所有内存。启动脚本将照常运行,您可以将代码放入其中,以检查重置原因,如果设备刚刚从深度睡眠中唤醒,则可能会执行不同操作。例如,要打印重置原因,您可以使用:

    if machine.reset_cause() == machine.DEEPSLEEP_RESET:
        print('woke from a deep sleep')
    else:
        print('power on or hard reset')

     注经测试深度睡眠模式存在些问题!

  • 相关阅读:
    软件測试培训笔记
    spring test---測试SpringMvc初识
    第1章第3节 线性表的比較
    Remove Duplicates from Sorted List leetcode
    泛型
    我的改进版2048(1)
    docker镜像和加速
    在 Azure Web 应用中创建 PHP 应用程序
    使用 Azure 门户创建 Windows 虚拟机
    使用 Azure 门户创建 Linux 虚拟机
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11990206.html
Copyright © 2011-2022 走看看