文章目录[隐藏]
目录
一、SD卡介绍
1.概述
SD存储卡(Secure Digital Memory Card)是一种基于半导体快闪存储器的新一代高速存储设备。SD存储卡的技术是从MMC卡(MultiMedia Card)格式上发展而来,在兼容SD存储卡基础上发展了SDIO(SD Input/ Output)卡,此兼容性包括机械,电子,电力,信号和软件,通常将SD、SDIO卡俗称SD存储卡。
SD卡具有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性,它被广泛地应用于便携式装置上,例如数码相机、平板电脑和多媒体播放器等。
SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域。音乐、电影等多媒体文件都可以方便地保存到SD卡中。
SD卡作为一种新型的存储设备,具有以下特点:
●高存储容量,最常用的容量:8GB、16GB、32GB、128GB、256GB等。
●内置加密技术,适应基于SDMI协议的著作版权保护功能。
●高速数据传送;最大读写速率为100MB/s。
●体积轻小,便于携带,具有很强的抗冲击能力。
2.SD模式
驱动模式:
SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信号线,即CS、DI、SCLK与DO(分别是SD卡的片选、数据输入、时钟与数据输出)。
传输模式:
SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式(独立指令和数据通道,独有的传输格式),4位SD模式(使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)
3.SD卡读取与写入(SPI模式)
1、发送CMD17;
2、接收卡响应R1;
3、接收数据起始令牌0XFE;
4、接收数据;
5、接收2个字节的CRC,如果不使用CRC,这两个字节在读取后可以丢掉。
6、禁止片选之后,发多8个CLK;
以上就是一个典型的读取SD卡数据过程。
SD卡的写于读数据差不多,写数据通过CMD24来实现,具体过程如下:
1、发送CMD24;
2、接收卡响应R1;
3、发送写数据起始令牌0XFE;
4、发送数据;
5、发送2字节的伪CRC;
6、禁止片选之后,发多8个CLK;
以上就是一个典型的写SD卡过程。
二、 STM32F103完成对SD卡的数据读取
1.代码部分
工程链接:https://pan.baidu.com/s/1c3bl54aSPyamkJ3ZqckmTg
提取码:hz01
打开工程根据自己需求修改代码
编译生成.hex文件
2.U盘格式化
在烧录之前先将SD卡格式化为FAT32文件模式
3.电路连接
USB TO TTL | STM32F103C8T6 |
5v | 5v |
GND | GND |
RXD | A9 |
TXD | A10 |
STM32F103C8T6 | SD卡 |
5v | VCC |
GND | GND |
A4 | CS |
A5 | SCK |
A6 | MISO |
A7 | MOSI |
连接完毕后如下:(我这里用了两个USB TO TTL,其中一个用来给SD卡模块提供5v电源和接地)
4.具体实现
把生成的hex文件烧录进芯片
打开串口调试助手 ,打开串口(BOOT0置0,并按下RESET键)
前几次试验只显示mian,应该是因为连接不稳,需要确保连接稳定才能成功
写入成功后,将SD卡插入电脑,打开生成的文件,如下
三、参考资料
版权声明:本文为CSDN博主「khhhhz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_57355109/article/details/122144010
暂无评论