一、依托协议
SD卡也是通过SPI协议进行通信,具体介绍详见:STM32F103基于SPI的OLED显示,这里不多做赘述。
本次实验主要进行SD卡文件读取的验证,工程文件已上传至网盘:
链接:https://pan.baidu.com/s/1oHmaU9f9cNI1UrBOBJpsiw
提取码:s98u
二、模块介绍
2.1 简介
SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。控制器对 SD 卡进行读写通信操作一般有两种通信接口可选,一种是 SPI 接口,另外一种是 SDIO 接口。
2.2 物理结构
一张SD卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱动器5 个部分。
- 存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输;
- 电源检测单元保证SD卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;
- 卡及接口控制单元控制SD卡的运行状态,它包括有8个寄存器;
- 接口驱动器控制 SD 卡引脚的输入输出。
三、具体接线
SD卡 | STM32 |
---|---|
CS | PA4 |
SCK | PA5 |
MISO | PA6 |
MOSI | PA7 |
VCC | 5V |
GND | GND |
实际接线如下所示:
注意:
- 单片机的供电和SD卡模块的供电最好是5V,不然可能带不动;
- 杜邦线选取短的接线;
- 接线尽可能地接紧,有一点接触松动就可能导致接收数据失败;
四、实验操作
4.1 代码编译
首先把下载好的工程文件进行编译:
4.2 SD卡格式化
把SD卡插入到读卡器中,再接入到电脑上;
格式化SD卡为FAT32
模式:
格式化完毕;
4.3 烧录文件
打开mcuisp烧录hex文件,记得把SD卡从读卡器取下插到模块中!
4.4 结果显示
- 打开串口调试助手接收数据:
首先进行SD卡的初始化,再进行文件的写入,发送11条写入指令后,开始循环while语句; - 查看写入文件
把SD卡从模块中取下,插回到读卡器中,连接至电脑,可以看到写入的文件:
五、小结
本次实验并没有什么操作难度,实际操作就是把格式化SD卡后,把代码烧录进单片机里,再插入到读卡器中查看写入的数据。烧录程序十分顺利,打开串口接收数据时经常会接收不到,多数情况下是杜邦线接触的问题,接触不稳或者是用的线太长,都有可能导致接收失败,多按一下接线的连接处就能正常收到数据啦!
五、参考资料
https://blog.csdn.net/m0_58414679/article/details/122036435?spm=1001.2014.3001.5501