https://rufus.ie/zh/ 

我先用这玩意把sd卡格式化了

FAT32哈

然后插入m5

  https://www.jianshu.com/p/32f998e8674c 

接着参考这篇


>>> os.mountsd()
W (121709) sdspi_host: spi bus changed (1 -> 2)
---------------------
 Mode: SPI
     Name: SU08G
     Type: SDHC/SDXC
    Speed: default speed (25 MHz)
SPI speed: 20 MHz
     Size: 7580 MB
      CSD: ver=1, sector_size=512, capacity=15523840 read_bl_len=9
      SCR: sd_spec=2, bus_width=5
 
>>>
>>> os.listdir('/')
['flash', 'sd']
>>> os.listdir('/sd')
['System Volume Information', 'A.TXT']
>>> os.rename('/sd/A.TXT','/sd/B.TXT')
>>> os.listdir('/sd')
['System Volume Information', 'B.TXT']
>>>
>>> os.umountsd()

 https://uiflow2.m5stack.com/ 

打开在线IDE

然后发现以上都是扯淡:

图形编程下加载了模块后

得到的才是最爽的代码

import os, sys, io
import M5
from M5 import *
from hardware import sdcard


def setup():

  M5.begin()
  Widgets.fillScreen(0x222222)

  sdcard.SDCard(slot=2, width=1, sck=36, miso=35, mosi=37, cs=4, freq=1000000)
  print(os.listdir('/sd//'))


def loop():
  M5.update()


if __name__ == '__main__':
  try:
    setup()
    while True:
      loop()
  except (Exception, KeyboardInterrupt) as e:
    try:
      from utility import print_error_msg
      print_error_msg(e)
    except ImportError:
      print("please update to latest firmware")

所以看了一下代码,其实sd卡,这个时候就可以访问了

头像最好的效果是:

  image0 = Widgets.Image("res/img/Face_1.png", 80, 30, scale_x=2, scale_y=2)
import os, sys, io
import M5
from M5 import *
from hardware import sdcard



image0 = None
image1 = None


def setup():
  global image0,image1

  M5.begin()
  Widgets.fillScreen(0x222222)
  image0 = Widgets.Image("res/img/default.png", 80, 30, scale_x=2, scale_y=2)


  try:
    sdcard.SDCard(slot=2, width=1, sck=36, miso=35, mosi=37, cs=4, freq=1000000)
  except Exception as e:
    print(e)
  print(os.listdir('/sd//'))


def loop():
  global image0,image1
  
  M5.update()

def update_img():
  global image0,image1
  print("I am in update_img")
  image1 = Widgets.Image("res/img/Face_1.png", 80, 30, scale_x=2, scale_y=2)



if __name__ == '__main__':
  try:
    setup()
    while True:
      loop()
  except (Exception, KeyboardInterrupt) as e:
    try:
      from utility import print_error_msg
      print_error_msg(e)
    except ImportError:
      print("please update to latest firmware")



播放SD卡上的音频都是OK的

import os, sys, io
import M5
from M5 import *
from hardware import sdcard
from audio import Player
import time



image0 = None
player = None


def setup():
  global image0, player

  M5.begin()
  Widgets.fillScreen(0x222222)
  image0 = Widgets.Image("res/img/default.png", 2, 3, scale_x=1, scale_y=1)

  sdcard.SDCard(slot=2, width=1, sck=36, miso=35, mosi=37, cs=4, freq=1000000)
  print(os.listdir('/sd//'))
  player = Player(None)
  player.play("file://sd/Neon Nights.mp3", pos=0, volume=100, sync=True)
  player.stop()
  time.sleep_ms(1000)
  player.resume()


def loop():
  global image0, player
  print("in the loop")
  M5.update()


if __name__ == '__main__':
  try:
    setup()
    while True:
      loop()
  except (Exception, KeyboardInterrupt) as e:
    try:
      from utility import print_error_msg
      print_error_msg(e)
    except ImportError:
      print("please update to latest firmware")


但是很奇怪,

sdcard.SDCard(slot=2, width=1, sck=36, miso=35, mosi=37, cs=4, freq=1000000)

这一句会报错

然后之后就会影响后续的ImageWeight的渲染

这个东西太不稳定了