MicroPython 的 v1.17 已经发布!此版本旨在遵循每 2 个月(左右)发布一次的时间表,之前的 v1.16 于 2021 年 6 月 18 日发布。
v1.17:F-strings、新 machine.I2S 类、ESP32-C3 支持和 LEGO_HUB_NO6 板
此版本的 MicroPython 添加了对 f-strings (PEP-498) 的支持,与标准通 Python 相比有一些限制。F 字符串本质上是 "".format() 的语法糖,使格式化字符串更加方便。对核心运行时的其他改进包括:当OSError有两个参数(一个errno代码和一个字符串)时,可以很好地打印OSError;在主线程上调度键盘中断;支持将单个参数转换为优化的StopIteration形式。
在machine模块中添加了一个新的 I2S 类,支持 esp32 和 stm32 端口。为在阻塞、非阻塞和基于 asyncio 的操作中传输和接收音频数据提供了一致的 API。此外,json 模块支持转储和转储函数中的“separators”参数,framebuf现在包括一种使用调色板在不同格式的帧缓冲区之间进行blit的方法。还添加了一个新的便携式 machine.bitstream 函数,可以输出具有可配置时序的位流,并用作跨硬件的通用方式驱动 WS2812 LED 的基础。
存储库目录布局进行了一些重组,所有第三方代码现在都在 lib/ 目录中。并且添加了一个新的顶级目录shared。
文档中对rp2部件进行了增强和添加,并为zephyr端口提供了新的快速参考。术语master/slave已被controller/peripheral取代,主要涉及到 I2C 和 SPI 的使用。并且 u-module 引用已被替换为没有 u-前缀的模块名称,以帮助清除 MicroPython 中模块的预期用途。
对于 esp8266 和 esp32,隐藏网络现在包含在 WLAN 扫描结果中。在 esp32 上,RMT 类通过 idle_level 和 write_pulses 模式得到增强。初步支持带有 GENERIC_C3 和 GENERIC_C3_USB 板的 ESP32-C3 芯片。
javascript 移植已经对其 Makefile 和垃圾收集器实现进行了重新设计,因此它可以使用 asyncify 与最新的 Emscripten 一起编译和运行。
mimxrt 移植增加了硬件 I2C 和 SPI 支持的添加,以及machine模块的一些附加方法。还支持 Hyperflash 芯片。
nrf 移植现在具有完整的 VFS 存储支持,在回溯时启用源代码行,并具有与其他端口一致的 .mpy 功能。
对于 rp2 移植,现在有更多的可配置性参数,并且添加了更多开发板。
stm32 移植有一个新的 LEGO_HUB_NO6 板定义,其中包含如何使该LEGO HUB 运行 MicroPython 的详细信息。现在还支持更改 STM32WB MCU 上的 CPU 频率。USBD_xxx 描述符选项已重命名为 MICROPY_HW_USB_xxx。