背景介绍:

Sugar 曾发过一篇《怎样让自己的 stm32 开发板支持 micropython》

,按照推文中的方法做大家都会有属于自己的 pyboard。

近期有读者向 Sugar 反馈用 pyboard 向 MicroSD 卡写文件怎么都写不进去,本篇 Sugar 就来给出用 MicroPython 读写 MicroSD 卡的正确方法。

SDIO 接口 MicroSD 卡看原理图确认 MicroSD 卡槽是 SDIO 方式。

1、编译时指明“有 SD 卡”,方法是:在mpconfigboard.h中加入:

列如:


2、用cd命令进入stm32文 件夹,用以下命令重新编译:


3、进入 build 出的文件夹,让开发板进入 dfu 模式,用以下命令烧写固件:


SDIO 接口 MicroSD 卡的使用方法

一、先在 Linux 下用读卡器格式化 MicroSD 卡


二、3 种使用方式

1、默认方式:插卡从 SD 卡启动,不插卡从内部 Flash 启动

2、无论如何都从内部 Flash 启动:先不插卡,在 Flash 内建一个名为SKIPSD的空文件即可。

3、从内部 Flash 启动后向 MicroSD 卡写文件先挂载、再写入。


提醒:在当前的 MicroPython 版本下,当插入 MicroSD 卡时可以分别向 MicroSD 卡和内部 Flash 写文件。向 MicroSD 卡写文件时用f = open("/sd/hello.txt", "w"),向内部 Flash 写文件时用f = open("/flash/hello.txt", "w")

注意:通过 MicroPython 写入的文件要重新将 pyboard 拔插一次才能看到新文件内容。

SPI 接口 MicroSD 卡

SPI 接口的 MicroSD 卡在 micropython 源码的/drivers/sdcard/路径下有驱动sdcard.py。使用时将其拷贝到 Pyboard 里并重启 Pyboard 就可以使用了,使用 RT-Thread IoT 开发板(既正点原子潘多拉开发板)测试的例程如下:


SPI 接口 MicroSD 卡的使用方法

一、先在 Linux 下用读卡器格式化 MicroSD 卡


二、2 种使用方式

1、从内部 Flash 启动后向 SD 卡里写文件先挂载、再写入。


2、运行 MicroSD 卡里的 python 程序

先建一个测试程序,命名为blink.py放到 MicroSD 卡中,程序内容如下:


将 MicroSD 卡插到开发板上,然后运行下面的程序:


这种修改sys.path的方法也适用于 SDIO 接口的 MicroSD 卡,只不过 SDIO 接口的卡要从卡里运行的话直接从 MicroSD 卡启动就行了,不用这么麻烦。

PS

MicroPython 工程在 github 上有 500MB 多一点,从 github 上 clone 慢的读者可以在公众号后台回复code得到 Sugar 用天翼云盘的共享链接,速度比 github 快不少。