You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raspberry Pi Pico开机自启程序写入日志遇Errno 30只读文件系统错误求助

解决Raspberry Pi Pico写入文件时的Errno 30只读文件系统错误

问题根源

Raspberry Pi Pico运行MicroPython/CircuitPython时,默认会把主文件系统挂载为只读模式,尤其是程序通过main.py自动启动时,直接写入文件会触发权限错误。另外你的代码存在语法问题:logs.Close()应为小写的logs.close(),Python方法名严格区分大小写。

解决步骤

1. 重新挂载文件系统为可读写

在代码开头添加以下代码,通过os模块重新挂载文件系统,获取读写权限:

import os

# 重新挂载主文件系统为可读写模式
os.mount(os.VfsFat(os.memmount()), "/", readonly=False)

如果长期记录日志,更建议外接SD卡写入(避免频繁读写Flash缩短寿命):

import os
from machine import SDCard

# 初始化并挂载SD卡
sd = SDCard()
os.mount(sd, "/sd")

2. 修正文件操作代码

改用with语句自动管理文件句柄,避免手动关闭时的语法错误,同时给日志添加换行符提升可读性:

print("Registering the process..")

with open("logs.txt", "a") as logs:
    logs.write("Operation has been saved\n")

如果用SD卡,把路径改成"/sd/logs.txt"即可。

完整可运行代码示例

import os

# 挂载可读写文件系统
os.mount(os.VfsFat(os.memmount()), "/", readonly=False)

print("Registering the process..")

with open("logs.txt", "a") as logs:
    logs.write("Operation has been saved\n")

额外提示

  • 测试时不要按住BOOTSEL键通电,此时Pico进入U盘模式,文件系统强制只读。
  • 频繁写入内置Flash会损耗寿命,长期日志优先用外接SD卡方案。

内容的提问来源于stack exchange,提问作者galaxym11_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:30:42