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

Inky Frame 7.3运行image_gallery_sd.py失败:SD卡图片无法显示

解决Inky Frame从SD卡读取JPEG报错的问题

针对运行image_gallery_sd.py时出现的RuntimeError: JPEG: could not read file/buffer错误,结合你已确认SD卡可用、图片放Pico根目录可正常显示的情况,可按以下步骤排查:

  • 检查路径与文件名细节

    • 确认SD卡根目录下的图片文件名完全匹配脚本中的调用格式(Micropython对文件名大小写敏感,比如0001.JPG和0001.jpg会被识别为不同文件)
    • 在sd_test.py中添加代码import os; print(os.listdir('/sd')),打印SD卡内的文件列表,验证图片是否存在且路径正确
  • 验证JPEG格式兼容性

    • Inky Frame的Micropython仅支持基线JPEG(不支持渐进式JPEG),且图片分辨率需匹配屏幕尺寸(如5.7寸屏为600x448)
    • 用图片编辑工具(如系统画图、GIMP)将图片另存为基线JPEG格式,再复制到SD卡测试
  • 核对SD卡挂载逻辑

    • 对比image_gallery_sd.py与sd_test.py中的SD卡挂载代码,确保SPI引脚、CS引脚参数完全一致,比如:
      import machine
      import sdcard
      import os
      spi = machine.SPI(0, sck=machine.Pin(18), mosi=machine.Pin(19), miso=machine.Pin(16))
      cs = machine.Pin(17, machine.Pin.OUT)
      sd = sdcard.SDCard(spi, cs)
      vfs = os.VfsFat(sd)
      os.mount(vfs, "/sd")
      
    • 若挂载路径不是/sd,脚本中的文件路径也需对应修改
  • 简化测试定位问题

    • 编写极简测试脚本,直接从SD卡读取单张图片,排除原脚本循环或遍历逻辑的影响:
      import inky_frame
      from jpegdec import JPEG
      import machine
      import sdcard
      import os
      
      # 挂载SD卡(复制sd_test中的挂载代码)
      spi = machine.SPI(0, sck=machine.Pin(18), mosi=machine.Pin(19), miso=machine.Pin(16))
      cs = machine.Pin(17, machine.Pin.OUT)
      sd = sdcard.SDCard(spi, cs)
      vfs = os.VfsFat(sd)
      os.mount(vfs, "/sd")
      
      j = JPEG(inky_frame.display)
      j.open_file("/sd/0001.jpg")
      j.decode(0, 0, jpegdec.JPEG_SCALE_FULL)
      inky_frame.display.update()
      
    • 若此脚本成功运行,说明原脚本存在逻辑问题;若仍报错,需排查SD卡硬件兼容性
  • 排查SD卡本身问题

    • 确保SD卡为FAT32文件系统(Micropython对NTFS/exFAT支持有限),格式化时使用默认分配单元大小
    • 重新格式化SD卡并重新复制图片,避免文件传输过程中损坏;尝试更换8GB以内的小容量SD卡,部分大容量卡可能存在兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:32:20