sdcard
— SD卡¶
安全数字或SD卡和微型microSD卡价格低廉,可为设备增加大量存储空间。MicroPython,只有1M的闪存来存储代码和数据。 如果你拥有更大的闪存空间,可以将micro SD卡通过SPI通讯方式连接到掌控板来扩展其存储空间。
SD卡¶
SDCard类¶
-
class
sdcard.
SDCard
(spi, cs)¶
创建SDCard对象,初始化SD卡。
首先,须确保SPI总线的引脚与micro SD卡物理连接正确。确保您的micro SD卡使用FAT或FAT32文件系统格式化。然后,用os.mount(),将SD卡虚拟新的FAT文件系统挂载到指定的目录中。 挂载完成后,你就可以使用Python 的文件操作(如打开,关闭,读取和写入)来访问文件。
spi
- machine.SPI对象cs
- SPI的CS控制引脚
示例-挂载SD卡¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | from machine import Pin, SPI
import machine, sdcard, os
# 创建SPI对象,spi引脚如下述
spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(Pin.P13), mosi=Pin(Pin.P15), miso=Pin(Pin.P14))
# 构建SDCard对象
sd = sdcard.SDCard(spi, Pin(Pin.P16))
# 挂载sd到 '/sd' 路径
os.mount(sd, '/sd')
# 创建文件并写数据
with open("/sd/test.txt", "w") as f:
f.write("Hello world!\r\n")
|
示例-列出所有文件¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | from machine import Pin, SPI
import machine, sdcard, os
spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(Pin.P13), mosi=Pin(Pin.P15), miso=Pin(Pin.P14))
sd = sdcard.SDCard(spi, Pin(Pin.P16))
os.mount(sd, '/sd')
def print_directory(path, tabs = 0):
for file in os.listdir(path):
stats = os.stat(path+"/"+file)
filesize = stats[6]
isdir = stats[0] & 0x4000
if filesize < 1000:
sizestr = str(filesize) + " by"
elif filesize < 1000000:
sizestr = "%0.1f KB" % (filesize/1000)
else:
sizestr = "%0.1f MB" % (filesize/1000000)
prettyprintname = ""
for i in range(tabs):
prettyprintname += " "
prettyprintname += file
if isdir:
prettyprintname += "/"
print('{0:<40} Size: {1:>10}'.format(prettyprintname, sizestr))
# recursively print directory contents
if isdir:
print_directory(path+"/"+file, tabs+1)
print("Files on filesystem:")
print("====================")
print_directory("/sd")
|