【雕爷学编程】MicroPython手册之 ESP32 特定端口库 esp32.Partition.RUNNING

在这里插入图片描述

MicroPython是为了在嵌入式系统中运行Python 3编程语言而设计的轻量级版本解释器。与常规Python相比,MicroPython解释器体积小(仅100KB左右),通过编译成二进制Executable文件运行,执行效率较高。它使用了轻量级的垃圾回收机制并移除了大部分Python标准库,以适应资源限制的微控制器。

MicroPython主要特点包括:
1、语法和功能与标准Python兼容,易学易用。支持Python大多数核心语法。
2、对硬件直接访问和控制,像Arduino一样控制GPIO、I2C、SPI等。
3、强大的模块系统,提供文件系统、网络、图形界面等功能。
4、支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
5、代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
6、开源许可,免费使用。Shell交互环境为开发测试提供便利。
7、内置I/O驱动支持大量微控制器平台,如ESP8266、ESP32、STM32、micro:bit、掌控板和PyBoard等。有活跃的社区。

MicroPython的应用场景包括:
1、为嵌入式产品快速构建原型和用户交互。
2、制作一些小型的可 programmable 硬件项目。
3、作为教育工具,帮助初学者学习Python和物联网编程。
4、构建智能设备固件,实现高级控制和云连接。
5、各种微控制器应用如物联网、嵌入式智能、机器人等。

使用MicroPython需要注意:
1、内存和Flash空间有限。
2、解释执行效率不如C语言。
3、部分库函数与标准版有差异。
4、针对平台优化语法,订正与标准Python的差异。
5、合理使用内存资源,避免频繁分配大内存块。
6、利用原生代码提升速度关键部位的性能。
7、适当使用抽象来封装底层硬件操作。

总体来说,MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。
在这里插入图片描述

MicroPython的esp是指针对ESP8266和ESP32芯片的MicroPython固件和相关软件库。ESP8266和ESP32是一类广泛应用于物联网和嵌入式系统的低成本、低功耗的Wi-Fi和蓝牙模块。MicroPython的esp为这两种芯片提供了高级的脚本编程环境,使开发者能够使用Python语言进行快速原型设计和开发。

ESP8266:是一款低成本、低功耗的Wi-Fi模块/芯片,由Espressif Systems开发。它内置了TCP/IP协议栈,可以用于连接互联网,并具备较强的处理能力。MicroPython的esp提供了针对ESP8266的固件和相关软件库,使开发者可以使用MicroPython语言进行ESP8266应用的开发。

ESP32:是Espressif Systems推出的一款高度集成的Wi-Fi和蓝牙模块/芯片,与ESP8266相比,它具备更强大的处理能力、更多的外设接口和更多的内存。MicroPython的esp也提供了针对ESP32的固件和相关软件库,使开发者可以使用MicroPython语言进行ESP32应用的开发。

MicroPython的esp固件:是专门针对ESP8266和ESP32芯片的MicroPython固件版本。这些固件经过了针对性的优化,使得它们可以在ESP8266和ESP32上运行,并提供了与硬件交互、网络通信和外设控制等功能的API。

软件库:MicroPython的esp还提供了一系列与ESP8266和ESP32硬件相关的软件库,用于简化和加速开发过程。这些软件库提供了丰富的功能接口,涵盖了Wi-Fi、蓝牙、GPIO(通用输入输出)、I2C、SPI、PWM等常用的硬件和通信协议,使开发者可以方便地访问和控制硬件资源。
在这里插入图片描述

esp32.Partition.RUNNING 是 MicroPython 中用于表示 ESP32 当前运行分区的常量。它提供了对运行分区的访问和标识,以便在开发过程中进行相应的操作。下面是对其主要特点、应用场景和需注意事项的详细解释,并给出了几个实际运用程序案例:

主要特点:

esp32.Partition.RUNNING 是一个常量,用于表示 ESP32 当前运行的分区。
它提供了对运行分区的访问和标识,使开发者能够了解和操作当前正在运行的分区。

应用场景:

esp32.Partition.RUNNING 常量适用于需要了解和操作 ESP32 运行分区的场景。
可以使用该常量获取当前正在运行的分区,以便进行相应的操作和调试。
在固件更新过程中,可以使用该常量确定要加载和执行的固件版本。

需注意事项:

在使用 esp32.Partition.RUNNING 常量之前,需要先导入 esp32 模块。
确保在使用该常量之前,已经了解了 ESP32 分区布局和运行分区的概念。
注意不同的运行分区可能具有不同的功能和用途,请根据实际情况选择正确的运行分区。

下面是几个实际运用程序案例:

案例1:获取当前正在运行的分区:

import esp32

# 获取当前正在运行的分区
running_partition = esp32.Partition.RUNNING

print("当前正在运行的分区:", running_partition)

案例2: 根据运行分区加载固件:

import esp32

# 根据运行分区加载相应的固件
if esp32.Partition.RUNNING == esp32.Partition(1, 0):
    # 加载固件 A
    # ...
elif esp32.Partition.RUNNING == esp32.Partition(2, 0):
    # 加载固件 B
    # ...
else:
    # 其他处理逻辑
    # ...

案例3:输出运行分区信息:
:

import esp32

# 输出当前正在运行的分区信息
running_partition = esp32.Partition.RUNNING

print("运行分区 ID:", running_partition.id())
print("运行分区子类型:", running_partition.subtype())
print("运行分区标签:", running_partition.label())
print("运行分区大小:", running_partition.size())

请注意,在实际运用中,根据具体的需求和情况,您可以根据当前的运行分区采取不同的操作和逻辑。确保在使用 esp32.Partition.RUNNING 常量时,了解其表示的运行分区,并根据实际需求进行相应的处理。

案例4:检查当前运行的分区:

import machine

# 获取当前运行的分区
running_partition = machine.Partition(machine.Partition.RUNNING)

# 输出当前运行的分区
print("当前运行的分区:", running_partition)

在这个例子中,我们使用esp32.Partition.RUNNING常量来获取当前运行的分区。我们使用machine.Partition()方法并传入machine.Partition.RUNNING来获取当前运行的分区,并将其存储在running_partition变量中。最后,我们使用print()函数输出当前运行的分区。

案例5:获取当前运行分区的标签::

import machine

# 获取当前运行分区的标签
running_partition = machine.Partition(machine.Partition.RUNNING)
partition_label = running_partition.label()

# 输出当前运行分区的标签
print("当前运行分区的标签:", partition_label)

在这个例子中,我们使用esp32.Partition.RUNNING常量来获取当前运行分区的标签。我们使用machine.Partition()方法并传入machine.Partition.RUNNING来获取当前运行的分区,并将其存储在running_partition变量中。然后,我们使用label()方法获取当前运行分区的标签,并将其存储在partition_label变量中。最后,我们使用print()函数输出当前运行分区的标签。

案例6:获取当前运行分区的大小::

import machine

# 获取当前运行分区的大小
running_partition = machine.Partition(machine.Partition.RUNNING)
partition_size = running_partition.size()

# 输出当前运行分区的大小
print("当前运行分区的大小:", partition_size, "字节")

在这个例子中,我们使用esp32.Partition.RUNNING常量来获取当前运行分区的大小。我们使用machine.Partition()方法并传入machine.Partition.RUNNING来获取当前运行的分区,并将其存储在running_partition变量中。然后,我们使用size()方法获取当前运行分区的大小,并将其存储在partition_size变量中。最后,我们使用print()函数输出当前运行分区的大小。

案例7:打印当前运行分区信息:

from esp32 import Partition
running = Partition.RUNNING
print("Running size: {} bytes".format(running.size))

案例8:从运行分区读取保存的数据:

from esp32 import Partition
running = Partition.RUNNING
data = running.read(1024, 100)

案例9:擦除运行分区备份数据:

from esp32 import Partition
running = Partition.RUNNING
running.erase_region(1024, 512)

第一个例子获取当前运行分区的大小。第二个例子从运行分区读取指定地址的数据。第三个例子擦除运行分区的部分区域。esp32.Partition.RUNNING用于获取当前正在运行的分区对象,它允许对正在执行的固件区进行操作,如读写备份数据等。这些例子演示了一些常见应用,如读取备份数据、擦除数据等。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41659040/article/details/132923904