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_
相关产品推荐
相关产品推荐

