# micropython
**Repository Path**: lonely-shadow/micropython
## Basic Information
- **Project Name**: micropython
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-03-30
- **Last Updated**: 2025-03-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MicroPython 项目
=======================
[](https://github.com/micropython/micropython/actions?query=branch%3Amaster+event%3Apush) [](https://github.com/micropython/micropython/actions?query=branch%3Amaster+event%3Apush) [](https://docs.micropython.org/) [](https://codecov.io/gh/micropython/micropython)
这是 MicroPython 项目,旨在将 Python 3.x 实现运行于微控制器和小型嵌入式系统上。官方网站请访问 [micropython.org](http://www.micropython.org)。
警告:该项目处于测试阶段,代码库可能会有变更,包括项目范围内的名称更改和 API 更改。
## 功能特性
MicroPython 实现了完整的 Python 3.4 语法(包括异常、`with`、`yield from` 等,以及 Python 3.5 的 `async`/`await` 关键字和部分后续版本特性)。支持的核心数据类型包括:`str`(含基础 Unicode 支持)、`bytes`、`bytearray`、`tuple`、`list`、`dict`、`set`、`frozenset`、`array.array`、`collections.namedtuple`、类和实例。内置模块包括 `os`、`sys`、`time`、`re` 和 `struct` 等。部分移植版本支持 `_thread` 模块(多线程)、`socket` 和 `ssl` 网络功能,以及 `asyncio`。请注意,仅实现了 Python 3 功能的一个子集。
MicroPython 可以执行文本源代码(.py 文件)或预编译字节码(.mpy 文件),这两种形式均可从设备文件系统或"冻结"到 MicroPython 可执行文件中运行。
MicroPython 还提供了一系列专用模块,用于访问硬件功能和外围设备,如 GPIO、定时器、ADC、DAC、PWM、SPI、I2C、CAN、蓝牙和 USB。
## 快速入门
请参阅[在线文档](https://docs.micropython.org/)获取 API 参考、使用指南和实现原理。
我们使用 [GitHub Discussions](https://github.com/micropython/micropython/discussions) 作为论坛,[Discord](https://discord.gg/RB8HZSAExQ) 进行实时交流。这些是向社区提问、获取建议和讨论项目的好地方。
如需报告错误或功能请求,请[提交 issue](https://github.com/micropython/micropython/issues/new/choose) 并按照模板填写。
关于官方支持的 [MicroPython pyboard](https://store.micropython.org/pyb-features)(来自[原始 Kickstarter 众筹](https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers))的信息,请查看[原理图和引脚图](http://github.com/micropython/pyboard)及[文档](https://docs.micropython.org/en/latest/pyboard/quickref.html)。
## 贡献指南
MicroPython 是一个开源项目,欢迎贡献。为确保高效协作,请遵循[贡献者指南](https://github.com/micropython/micropython/wiki/ContributorGuidelines)和[代码规范](https://github.com/micropython/micropython/blob/master/CODECONVENTIONS.md)。请注意 MicroPython 采用 MIT 许可证,所有贡献都应遵循此许可。
## 代码仓库结构
本仓库包含以下组件:
- [py/](py/) —— Python 核心实现,包括编译器、运行时和核心库
- [mpy-cross/](mpy-cross/) —— MicroPython 交叉编译器,用于将脚本转换为预编译字节码
- [ports/](ports/) —— 各移植平台和架构的特定代码
- [lib/](lib/) —— 外部依赖子模块
- [tests/](tests/) —— 测试框架和测试脚本
- [docs/](docs/) —— Sphinx reStructuredText 格式的用户文档,用于生成[在线文档](http://docs.micropython.org)
- [extmod/](extmod/) —— 用 C 实现的额外(非核心)模块
- [tools/](tools/) —— 各种工具,包括 pyboard.py 模块
- [examples/](examples/) —— 一些 Python 脚本示例
## 构建说明
使用 "make" 构建组件(BSD 系统使用 "gmake")。需要安装 bash、gcc 和 Python 3.3+(命令名为 `python3`,如果系统只有 Python 2.7,请添加 `PYTHON=python2` 参数)。部分移植(rp2 和 esp32)还需要 CMake。
## 支持平台与架构
MicroPython 可在多种微控制器上运行,也支持类 Unix(包括 Linux、BSD、macOS、WSL)和 Windows 系统。
微控制器目标设备最小可支持 256kiB 闪存 + 16kiB RAM,但建议使用至少 512kiB 闪存 + 128kiB RAM 的设备以获得更完整的功能体验。
[Unix](ports/unix) 和 [Windows](ports/windows) 移植版本既可用于开发和测试 MicroPython 本身,也可作为这些平台上 CPython 的轻量级替代方案(特别是在嵌入式 Linux 系统中)。
["minimal"](ports/minimal) 移植提供了一个非常基础的 MicroPython 移植示例,可编译为 Linux 二进制文件或 ARM Cortex M4 程序。[ "bare-arm"](ports/bare-arm) 移植则展示了最小配置,用于跟踪核心运行时和虚拟机的代码大小。
本仓库还包含以下移植版本:
- [cc3200](ports/cc3200) —— 德州仪器 CC3200(含 PyCom WiPy)
- [esp32](ports/esp32) —— 乐鑫 ESP32 系列(含 ESP32S2/ESP32S3/ESP32C3/ESP32C6)
- [esp8266](ports/esp8266) —— 乐鑫 ESP8266
- [mimxrt](ports/mimxrt) —— NXP i.MX RT(含 Teensy 4.x)
- [nrf](ports/nrf) —— 北欧半导体 nRF51/nRF52
- [pic16bit](ports/pic16bit) —— Microchip PIC 16 位
- [powerpc](ports/powerpc) —— IBM PowerPC(含 Microwatt)
- [qemu](ports/qemu) —— 基于 QEMU 的模拟目标(用于测试)
- [renesas-ra](ports/renesas-ra) —— 瑞萨 RA 系列
- [rp2](ports/rp2) —— 树莓派 RP2040(含 Pico 和 Pico W)
- [samd](ports/samd) —— Microchip(原 Atmel)SAMD21/SAMD51
- [stm32](ports/stm32) —— 意法半导体 STM32 系列(含 F0/F4/F7/G0/G4/H7/L0/L4/WB)
- [webassembly](ports/webassembly) —— 面向浏览器和 NodeJS 的 Emscripten 移植
- [zephyr](ports/zephyr) —— Zephyr RTOS
## MicroPython 交叉编译器 mpy-cross
大多数移植需要先构建 [MicroPython 交叉编译器](mpy-cross)。这个名为 mpy-cross 的程序用于将 Python 脚本预编译为 .mpy 文件,然后可以包含(冻结)到固件/可执行文件中。构建命令:
$ cd mpy-cross
$ make
## 外部依赖
MicroPython 核心虚拟机和运行时没有外部依赖,但特定移植可能依赖第三方驱动或厂商 HAL。本仓库包含[若干子模块](lib/)链接到这些外部依赖。在编译特定移植前,请执行:
$ cd ports/名称
$ make submodules
以确保所有需要的子模块都已初始化。