背景介绍:
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 快不少。