一 本章简介
本章是 立创·天空星 STM32F407VET6 MicroPython篇 教程 的简介,主要介绍 MicroPython 是什么、为什么选择它、以及本套教程的整体结构和学习路径。
1.1 学习目标
| 序号 | 学习目标 | 重要程度 |
|---|---|---|
| 1 | 了解 MicroPython 的定义、特点和适用场景 | ⭐⭐⭐⭐⭐ |
| 2 | 了解天空星开发板的硬件资源和整体架构 | ⭐⭐⭐⭐⭐ |
| 3 | 了解本套教程的内容结构和学习路径 | ⭐⭐⭐⭐ |
| 4 | 明确学习本教程所需的前置知识 | ⭐⭐⭐ |
1.2 重点提示
- MicroPython 与标准 CPython(电脑上的 Python)在语法上高度兼容,但并非完全相同,部分标准库在嵌入式环境中有所裁剪或替换。
- 本教程基于天空星 STM32F407VET6 核心板编写,同时兼顾搭配天空星·筑基学习板使用的场景,两者均可跟随学习。
- 本教程不是 Python 语言入门教程,建议读者具备基础的 Python 语法知识(变量、函数、循环、类等)。
- 嵌入式 MicroPython 的资源(RAM、Flash)极为有限,编程思路与 PC 端 Python 有所不同,需要时刻关注内存占用。
1.3 基础概念与术语
- MicroPython:一种精简高效的 Python 3 实现,专为微控制器和嵌入式系统设计,可以在资源受限的硬件上运行 Python 代码。
- REPL(Read-Eval-Print Loop,交互式解释器):MicroPython 提供的交互式命令行环境,可以实时输入代码并立即看到执行结果,非常适合调试和快速验证。
- 固件(Firmware):烧录到单片机 Flash 中的程序,包含 MicroPython 解释器本体及板级支持包(BSP)。
- pyb 模块:MicroPython 针对 STM32/Pyboard 平台提供的专用硬件控制模块,功能最全面。
- machine 模块:MicroPython 官方的跨平台硬件抽象层,代码可在不同 MicroPython 平台间移植。
- mpremote:MicroPython 官方提供的命令行工具,用于连接 REPL、上传/下载文件、执行脚本等。
二 MicroPython 是什么
2.1 从 Python 到 MicroPython
Python 是目前世界上最流行的编程语言之一,以其简洁易读的语法和丰富的生态著称。然而,标准的 CPython 解释器需要运行在 Linux/Windows/macOS 这类拥有操作系统和大量内存的环境中,无法直接在只有几百 KB RAM 的单片机上运行。
MicroPython 正是为了解决这个问题而诞生的。它由英国工程师 Damien George 于 2013 年创建,目标是在微控制器上实现一个完整的 Python 3 运行时环境。MicroPython 对 Python 标准库进行了精简,同时针对嵌入式硬件提供了直接操作 GPIO、UART、SPI、I2C、ADC、DAC、定时器等外设的专用模块。
NOTE
MicroPython 的语法与 Python 3 高度兼容。如果你已经会写 Python,那么上手 MicroPython 的成本极低——大部分语法、数据类型、控制流都是一样的,主要区别在于硬件相关的 API。
2.2 MicroPython 的优势
与传统的 C/C++ 嵌入式开发相比,MicroPython 有以下几个显著优势:
1. 开发效率极高
不需要编译、链接、烧录这一套繁琐流程。修改代码后,直接通过 REPL 或 mpremote 上传,立即运行,立即看到结果。调试一个 I2C 传感器,可能只需要几行代码和几分钟时间。
2. 交互式开发体验
REPL 环境允许你像使用计算器一样,一行一行地输入代码并立即执行。这对于探索未知硬件、验证通信协议、调试传感器数据来说,是无可替代的利器。
3. 代码可读性强
Python 的语法天然具有极高的可读性。相比 C 语言中大量的指针操作、位运算和寄存器配置,MicroPython 的代码更接近自然语言,便于团队协作和后期维护。
4. 快速原型验证
在产品开发的早期阶段,用 MicroPython 快速验证硬件方案和算法逻辑,然后再用 C 语言进行性能优化,是一种非常高效的工程实践。对于我们的天空星·筑基学习板来说,我们板载的大部分外设都可以先用 MicroPython 验证一下,然后在用C语言来发挥最高的性能。
2.3 MicroPython 的局限性
当然,MicroPython 也有其局限性,我们需要客观认识:
| 方面 | 说明 |
|---|---|
| 执行速度 | Python 解释执行,速度比 C 语言慢 10~100 倍。对于需要微秒级精确时序的场景(如软件模拟高速协议),很容易力不从心 |
| 内存占用 | Python 对象有额外的内存开销,RAM 资源紧张时需要注意 |
| 生态完整性 | 部分 Python 标准库在 MicroPython 中不可用或功能有所裁剪 |
| 实时性 | 垃圾回收(GC)可能引入毫秒级的不确定延迟,对硬实时场景需要特别处理 |
TIP
对于大多数传感器采集、通信协议、人机交互类应用,MicroPython 的速度完全够用。只有在需要极高频率 IO 翻转(>1MHz)或严格实时控制的场景,才需要考虑切换到 C 语言实现。
三 天空星开发板简介
3.1 核心板硬件资源
立创·天空星 STM32F407VET6 是立创开发板推出的一款高性价比 STM32F4 核心板,采用 LQFP100 封装,设计上兼容 STM32/GD32/HC32 等多家厂商的 100 脚 MCU。

| 参数 | 说明 |
|---|---|
| MCU | STM32F407VET6(ARM Cortex-M4F,168MHz,带 FPU) |
| Flash | 512KB 内部 Flash |
| RAM | 192KB SRAM(128KB 主 SRAM + 64KB CCM) |
| HSE 晶振 | 8MHz |
| USB | USB-FS(PA11/PA12),支持 CDC 虚拟串口和 MSC 大容量存储 |
| TF 卡座 | SDIO 4-bit 模式,检测引脚 PD3(低电平=卡已插入) |
| 板载 LED | PB2(高电平点亮) |
| 用户按键 | PA0(按下为高电平,内部下拉) |
| UART | UART1(PA9/PA10)、UART2(PD5/PD6)、UART3(PD8/PD9) |
| I2C | I2C1(PB6-SCL / PB7-SDA) |
| SPI | SPI2(PB10-SCK / PC2-MISO / PC3-MOSI) |
| ADC | 3 个 12 位 ADC,多通道 |
| DAC | 2 通道 12 位 DAC(PA4/PA5) |
| RTC | 支持(默认使用内部 LSI) |
3.2 搭配筑基学习板

如果你购买了天空星·筑基学习板套件,底板额外提供了丰富的板载外设资源,均通过核心板引脚驱动:
| 类别 | 外设 | 接口/芯片 |
|---|---|---|
| 传感器 | 温湿度 | AHT20-F(I2C1,0x38) |
| 传感器 | 六轴 IMU | ICM-42688-P(SPI2) |
| 传感器 | 电压电流 | INA226(I2C1,0x40) |
| 存储 | EEPROM | AT24C02(I2C1,0x50) |
| 存储 | SPI Flash | W25Q128(SPI2) |
| 时钟 | 高精度 RTC | SD3078(I2C1,0x32) |
| 音频 | 编解码 | ES8388(I2C1 + I2S2) |
| 扩展 | IO 扩展 | PCA9555PW(I2C1,0x20) |
| 通信 | 以太网 | LAN8720A(RMII) |
| 通信 | 隔离 CAN | TJA1042T |
| 通信 | 隔离 RS485 | SP485EEN |
| 驱动 | 直流电机 x2 | AT8236 |
| 驱动 | 步进电机 | TMC2209 |
| 人机 | RGB LED x3 | WS2812 |
| 人机 | 蜂鸣器 | 有源 + 无源(拨码切换) |
| 人机 | 旋转编码器 | EC11 |
| 人机 | 继电器 | 光耦隔离 |
| 人机 | 屏幕接口 | FPC-18P(SPI1 LCD + I2C2 触摸) |
IMPORTANT
筑基学习板上部分功能存在引脚复用冲突,需要通过 8 路拨码开关或软件控制 PCA9555 来切换。在使用相关外设前,请务必确认拨码开关的状态。详细说明请参考各章节的硬件配置说明,可以先看这里提前了解。
四 硬件资料与参考文档
4.1 天空星开发板资料
- 天空星核心板硬件资料(原理图、PCB、数据手册):
4.2 MicroPython 官方资源
- MicroPython 官方文档:https://docs.micropython.org/
- MicroPython GitHub 仓库:https://github.com/micropython/micropython
- STM32 端口文档:https://docs.micropython.org/en/latest/pyboard/
4.3 STM32F407 芯片资料
- STM32F407 数据手册(Datasheet):
- STM32F4 参考手册(RM0090,含所有外设寄存器说明):
NOTE
如果你在学习过程中遇到问题,或者对本教程有任何建议,欢迎通过以下方式反馈:
- 访问立创开发板官方论坛发帖
- 添加开发菌企业微信,进入【立创开发板「天空星·筑基学习板」交流群】
你的反馈将帮助我们持续改进教程质量!