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卡¶
1from machine import Pin, SPI
2import machine, sdcard, os
3
4# 创建SPI对象,spi引脚如下述
5spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(Pin.P13), mosi=Pin(Pin.P15), miso=Pin(Pin.P14))
6# 构建SDCard对象
7sd = sdcard.SDCard(spi, Pin(Pin.P16))
8# 挂载sd到 '/sd' 路径
9os.mount(sd, '/sd')
10
11# 创建文件并写数据
12with open("/sd/test.txt", "w") as f:
13 f.write("Hello world!\r\n")
示例-列出所有文件¶
1from machine import Pin, SPI
2import machine, sdcard, os
3
4spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(Pin.P13), mosi=Pin(Pin.P15), miso=Pin(Pin.P14))
5sd = sdcard.SDCard(spi, Pin(Pin.P16))
6
7os.mount(sd, '/sd')
8
9def print_directory(path, tabs = 0):
10 for file in os.listdir(path):
11 stats = os.stat(path+"/"+file)
12 filesize = stats[6]
13 isdir = stats[0] & 0x4000
14
15 if filesize < 1000:
16 sizestr = str(filesize) + " by"
17 elif filesize < 1000000:
18 sizestr = "%0.1f KB" % (filesize/1000)
19 else:
20 sizestr = "%0.1f MB" % (filesize/1000000)
21
22 prettyprintname = ""
23 for i in range(tabs):
24 prettyprintname += " "
25 prettyprintname += file
26 if isdir:
27 prettyprintname += "/"
28 print('{0:<40} Size: {1:>10}'.format(prettyprintname, sizestr))
29
30 # recursively print directory contents
31 if isdir:
32 print_directory(path+"/"+file, tabs+1)
33
34
35print("Files on filesystem:")
36print("====================")
37print_directory("/sd")
38