news 2026/9/20 18:07:57

MicroPython pyboard 入门指南:硬件布局、供电方式与首次上电

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MicroPython pyboard 入门指南:硬件布局、供电方式与首次上电
  • 嵌入式
  • 语言运行时
  • 编程语言
  • 解释器
  • 编译器
  • 物联网
  • 系统编程

【免费下载链接】micropython

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

项目地址:https://gitcode.com/gh_mirrors/mi/micropython
点击查看免费下载

MicroPython 的 pyboard 是一块以 STM32F405RG 为核心的开发板,本文是 pyboard 官方教程系列(docs/pyboard/tutorial/index.rst)的开篇,围绕「认识硬件、正确供电、安全上电」展开,并结合本仓库的 stm32 移植源码与后续教程,帮助你在拿到板子后 5 分钟内完成首次通电、理解启动流程,并为后续编写并运行第一个 MicroPython 脚本做好准备。读完本文,你将掌握 pyboard 的板载资源布局、USB 与外部电源两种供电方式及电压限制、启动模式(标准/安全/文件系统重置)与常见故障的复位恢复手段。

硬件布局:一眼看懂 pyboard 上的关键元件

在动手之前,先熟悉 pyboard 的物理布局。以最常见的 pyboard 1.x 系列为例,板面元件分布如下:

  • micro USB 连接器位于板的右上角,是供电与数据通信(USB 串口 + USB 大容量存储)的唯一入口;
  • micro SD 卡槽位于板的左上角,插入 SD 卡后可作为扩展存储;
  • 4 颗 LED位于 SD 卡槽与 USB 连接器之间,颜色从下到上依次为红、绿、橙、蓝
  • 2 个开关:右侧是RST(复位)开关,左侧是USR(用户)开关

这些板级细节在源码中有明确对应。查看 pyboard 参考板的移植配置 ports/stm32/boards/PYBV11/mpconfigboard.h,可以看到四颗 LED 的硬件引脚定义:

#define MICROPY_HW_LED1 (pin_A13) // red #define MICROPY_HW_LED2 (pin_A14) // green #define MICROPY_HW_LED3 (pin_A15) // yellow #define MICROPY_HW_LED4 (pin_B4) // blue #define MICROPY_HW_LED3_PWM { TIM2, 2, TIM_CHANNEL_1, GPIO_AF1_TIM2 } #define MICROPY_HW_LED4_PWM { TIM3, 3, TIM_CHANNEL_1, GPIO_AF2_TIM3 } #define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin)) #define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))

这段代码同时印证了教程中反复提到的一个细节:黄色(LED3)和蓝色(LED4)两颗 LED 支持 PWM 调光(对应教程 docs/pyboard/tutorial/leds.rst 中的intensity()方法),而红、绿两颗只能开关。用户开关 USR 的定义也在此文件中:

#define MICROPY_HW_USRSW_PIN (pin_B3) #define MICROPY_HW_USRSW_PULL (GPIO_PULLUP) #define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_FALLING) #define MICROPY_HW_USRSW_PRESSED (0)

即 USR 开关接在 B3 引脚上、内部上拉、下降沿触发外部中断——这正是教程 docs/pyboard/tutorial/switch.rst 中sw.callback()中断回调机制的底层来源。

日常保养:保护裸露的电路板

pyboard 没有外壳,硬件裸露在外,使用中需要留意以下几点:

  • USB 插拔要轻柔:micro USB 连接器是通孔焊接在板上的,虽然相对牢固,但一旦脱落修复非常困难;
  • 警惕静电:静电可能击穿板上的元器件。如果你所在的地区气候干燥寒冷、静电频繁,请格外小心。如果 pyboard 原配了黑色塑料盒,那是最好的收纳与携带方式——它由导电塑料制成、内部有导电泡沫,是一个防静电盒
  • 软件几乎不可能弄坏硬件:放心大胆地写代码测试即可。如果文件系统损坏,可以按下文的方法重置;最坏的情况下也只需通过 USB 重新烧写 MicroPython 固件。

USB 供电与首次上电

pyboard 通过micro USB 接口供电。用一根 micro USB 线连接到 PC,注意接口只有一个方向能插进去,不会插反。连接后,板上的绿色 LED 会快速闪烁,表示系统正在启动。

从启动时序上看,一次上电(硬复位)遵循固定的引导序列,完整说明见 docs/reference/reset_boot.rst:板载_boot.py(烧录在固件中,用于首次格式化内部闪存文件系统等初始化)→ 执行可编辑的boot.py→ 初始化 USB → 执行main.py→ 若main.py不存在或退出,则进入 REPL 交互解释器。更通俗的描述见 docs/pyboard/general.rst 的“Boot modes”一节:标准模式下先执行boot.py,然后配置 USB,最后运行main.py

首次连接 PC 时,pyboard 会以USB 大容量存储设备的形式出现(Windows 下是可移动 U 盘、Mac 下桌面出现名为PYBFLASH的磁盘、Linux 下自动挂载,可用lsblk查看后mount挂载)。这个盘在 pyboard 内部称为/flash,出厂时包含 4 个文件:

  • boot.py—— 各种配置选项,开机时执行;
  • main.py—— 要运行的 Python 程序,在boot.py之后执行;
  • README.txt—— 入门指引,可安全删除;
  • pybcdc.inf—— Windows 下配置 USB 串口设备的驱动文件(详见 docs/pyboard/tutorial/repl.rst)。

/flash是 pyboard 内部闪存上的文件系统;如果插入了 micro SD 卡,它会以/sd挂载,并且优先从 SD 卡启动boot.pymain.py从 SD 卡查找)。若希望强制从内部闪存启动,可在/flash下创建一个名为SKIPSD的空文件,此时 SD 卡不会自动挂载,但仍可在程序中用vfs.mount手动挂载。需要特别提醒的是:在复位 pyboard 之前,务必先弹出(Linux 下为卸载)USB 盘,否则可能损坏文件系统。

外部电源供电:VIN 与 GND

除了 USB 供电,pyboard 还可以通过电池或其他外部电源供电,接线到板上的 VIN 与 GND 引脚。

务必注意:电源的正极接VIN,负极(地)接GND。pyboard没有极性保护,接反会损坏板子,接线时必须万分小心。

输入电压必须在 3.6V 与 10V 之间。

3.6V 的下限意味着单节锂电池(标称 3.7V,充满约 4.2V)即可供电;10V 的上限说明常见的 5V USB 电源、9V 适配器都在安全范围内。超出该范围会给板载稳压电路带来风险。

如果你希望进一步控制功耗,pyboard 还提供软件层面的电源管理手段(详见 docs/pyboard/tutorial/power_ctrl.rst):

while True: do_some_processing() pyb.wfi() # 等待中断等事件时降低功耗

以及调节 CPU 主频:

pyb.freq(30000000) # 将 CPU 频率设为 30MHz

pyb.freq()可在功耗与性能之间做权衡,pyb.wfi()则让 CPU 在等待事件(如外部中断)时进入低功耗等待状态,非常适合电池供电的场景。

启动模式:标准、安全与文件系统重置

pyboard 支持通过「按住 USR 开关 + 按 RST 复位」的方式进入不同启动模式,选择依据是上电时 LED 的二进制计数。操作要点(详见 docs/pyboard/general.rst 与 docs/pyboard/tutorial/reset.rst):

  1. 连接 USB 使 pyboard 上电;
  2. 按住USR开关;
  3. 保持按住 USR,同时按下并松开RST开关;
  4. 此时 LED 会在「绿 → 橙 → 绿+橙」之间循环;
  5. 在 LED 显示到目标模式时松开 USR,对应模式的 LED 会快速闪烁 4 次,板子随即以该模式启动。

三种模式如下:

模式LED 指示行为
标准启动仅绿色 LED依次执行boot.pymain.py
安全模式仅橙色 LED不执行任何启动脚本,跳过boot.py/main.py,以默认 USB 设置启动
文件系统重置绿色 + 橙色 LED将内部闪存文件系统恢复出厂状态,然后以安全模式启动

其中安全模式用于排障:它临时跳过boot.pymain.py,板子以默认设置启动,USB 盘正常出现,你可以编辑修复这两个文件。安全模式是临时的,不会改动板上文件。

文件系统重置则用于两类场景:文件系统损坏(例如忘记弹出/卸载 USB 盘),或boot.py/main.py中写入了导致你无法脱身的代码。该操作会删除 pyboard 内部存储(不包含 SD 卡)上的所有文件,并把boot.pymain.pyREADME.txtpybcdc.inf恢复为出厂状态。重置完成后会停留在安全模式,按一次 RST 即可恢复正常启动。

如果板子已经无法正常启动(俗称“软砖”),可参考 docs/reference/reset_boot.rst 中的恢复手段:多数情况下打开 REPL 串口按Ctrl-C注入KeyboardInterrupt即可让脚本退出并进入 REPL,然后用import os; os.remove('main.py')删除出问题的文件;若 REPL 不可用,再考虑安全模式与文件系统重置。

复位方式与错误指示

日常调试中你会频繁用到两种复位:

  • 软复位:在 MicroPython REPL 提示符下按Ctrl-D,解释器会清理 Python 环境并重新启动,打印MPY: soft reboot之类的信息后回到>>>提示符(见 docs/pyboard/tutorial/repl.rst);
  • 硬复位:按板上的RST 开关(靠近 micro USB 插座的小黑按钮),相当于断电重开,会断开当前的串口连接程序。

pyboard 还通过 LED 组合报告启动错误(见 docs/pyboard/general.rst 的“Errors: flashing LEDs”一节):

  • 红色与绿色 LED 交替闪烁:某个 Python 脚本(如main.py)运行出错,请进入 REPL 调试;
  • 四颗 LED 缓慢循环点亮:发生了硬故障(hard fault),无法恢复,只能做一次硬复位。

上电之后:下一步该做什么

完成通电验证后,建议按官方教程顺序继续探索:

  1. 编写并运行第一个脚本:编辑main.py写入import pyb+pyb.LED(4).on(),保存弹出后按 RST 运行,见 docs/pyboard/tutorial/script.rst;
  2. 进入 REPL 交互式执行代码(print("hello pyboard!")1+2pyb.LED(1).on()等),见 docs/pyboard/tutorial/repl.rst;
  3. 玩转四颗 LED:开关、toggle()intensity()调光与“迪斯科”循环,见 docs/pyboard/tutorial/leds.rst;
  4. 使用 USR 开关与中断回调sw.callback(...),见 docs/pyboard/tutorial/switch.rst。

需要额外硬件(舵机、LCD 皮肤、音频放大皮肤等)的进阶实验,以及防抖、USB 透传等技巧,可继续翻阅 docs/pyboard/tutorial/index.rst 中的其余章节。

  • 嵌入式
  • 语言运行时
  • 编程语言
  • 解释器
  • 编译器
  • 物联网
  • 系统编程

【免费下载链接】micropython

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

项目地址:https://gitcode.com/gh_mirrors/mi/micropython
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 18:07:50

Aider 实战:TaoToken 跑通 Django 迁移脚本仓库任务

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 18:04:52

答案格式总不对?TaoToken 这样查 GSM8K 评测请求链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 18:04:49

国产大模型编程选型实战:GLM/Kimi/豆包/abab接入指南

先说结论:GLM、Kimi、豆包、abab 这四个国产模型,没有一个能通吃所有 coding 场景,但至少有三个值得你现在就把它接进日常工具链。最近我在实际项目里把这四家模型分别接进了 Claude Code、Codex CLI 和 VS Code 插件,跑了快两周的…

作者头像 李华
网站建设 2026/9/20 18:01:25

源代码漏洞测试工具选型指南与性能评估

1. 源代码漏洞测试工具选型背景与标准解读在软件检测实验室的日常工作中,源代码漏洞测试是确保软件质量与安全性的关键环节。作为从业十余年的软件检测工程师,我见证过太多因工具选型不当导致的漏检事故。根据CB/T 34943-2017、CB/T 34944-2017等标准要求…

作者头像 李华
网站建设 2026/9/20 18:00:59

深度学习驱动计算全息图生成:UNet实现实时相位恢复

简介:一份关于基于深度学习的计算全息图生成算法研究的论文复现与总结资料,内容聚焦如何用卷积神经网络替代传统迭代优化算法,在保证全息图质量的同时将生成速度提升一个数量级。资料面向全息显示、增强现实及计算成像领域的研究人员与工程师…

作者头像 李华