如何在CircuitPython下让Raspberry Pi Pico仅显示SD卡文件夹?
解决CircuitPython下Pico仅暴露SD卡文件夹到USB的问题
要实现仅让电脑识别到Pico的SD卡文件夹,需修改CircuitPython的启动配置脚本boot.py,重新指定USB大容量存储的根目录为SD卡挂载点。以下是具体步骤:
1. 准备依赖库
确保你的CircuitPython设备lib文件夹中包含adafruit_sdcard.mpy库(从对应版本的CircuitPython库包中获取即可)。
2. 编写boot.py脚本
创建或替换设备根目录下的boot.py文件,代码如下(根据SD卡硬件接线调整引脚):
import board import busio import storage import adafruit_sdcard import os # 初始化SPI总线(对应Pico常用SD卡接线引脚) spi = busio.SPI(board.GP13, MOSI=board.GP12, MISO=board.GP11) cs_pin = board.GP10 try: # 挂载SD卡 sd_card = adafruit_sdcard.SDCard(spi, cs_pin) vfs = storage.VfsFat(sd_card) storage.mount(vfs, "/sd") # 将USB大容量存储的根目录设置为SD卡挂载点 storage.usb_drive.set_root("/sd") # 可选:如需禁止SD卡写入,可设置为readonly=True # storage.remount("/sd", readonly=True) except Exception as e: # SD卡挂载失败时,自动 fallback 到默认的CIRCUITPY盘符 pass
3. 关键说明
- 引脚调整:若SD卡模块使用了不同的SPI引脚,修改代码中对应的
board.GPx参数即可。 - 版本要求:
storage.usb_drive.set_root()方法仅支持CircuitPython 7.0及以上版本,请确保设备运行符合要求的固件。 - 容错机制:代码中的
try-except块确保SD卡挂载失败时,设备仍能正常显示默认的CIRCUITPY盘符,避免无法访问设备的情况。
完成操作后重新连接Pico到电脑,系统将只显示SD卡内的文件和文件夹,默认的CIRCUITPY内容不再通过USB暴露。
内容的提问来源于stack exchange,提问作者Artur
相关产品推荐
相关产品推荐

