用STM32F103 完成对SD卡的数据读取(FAT文件模式)

目录

一、基本知识

1.1 SD卡

1.2 SPI协议

二、SD卡工程源码下载

三、操作步骤

3.1 格式化

3.2 连接操作

3.3代码修改

四,编译运行

五、烧录运行结果

六、常见错误分析

七、总结


一、基本知识

1.1 SD卡

可查看上篇博客:Altium Designer 18绘制一个STM32+SD卡 的系统原理图设计_Laul Ken-Yi的博客-CSDN博客

1.2 SPI协议

可查看博客:

基于I2C的AHT20温度采集器以及基于SPI协议OLED显示_Laul Ken-Yi的博客-CSDN博客

本例中因为stm32F103C8T6没有SDIO协议,因此采用SPI模拟SDIO。

二、SD卡工程源码下载

github下载:GitHub - cdsgsjx/-

三、操作步骤

3.1 格式化

首先将SD卡插到电脑端,进行手动的格式化,格式化为FAT格式。

3.2 连接操作

STM32SD卡
CSPA4
SCKPA5
MISOPA6
MOSIPA7

3.3代码修改

  • main.c

 while循环中

while (1)
  {
		
		
		
		WritetoSD(WriteBuffer,sizeof(WriteBuffer));		

		
		
		HAL_Delay(500);
		/*WriteBuffer[0] = WriteBuffer[0] +10;
		WriteBuffer[1] = WriteBuffer[1] +10;*/
		write_cnt ++;
		
		while(write_cnt > 0)
		{	
			printf(" while \r\n");
			HAL_Delay(500);
		}		

四,编译运行

五、烧录运行结果

  • 串口回显

 一共要回复两次初始化成功,第一次是在得到使用内存并选择格式化时,一次是在写SD卡时。

  • 打开HELLO.txt

可以看到一共输出了22字节,\r\n表示回车换行。

\n 是换行,英文是New line,它将光标到行首
\r 是回车,英文是Carriage return,它将光标下移一格
\r\n 表示回车换行

六、常见错误分析

1、编译运行后无反应一直显示main,可能是由于我们的stm最小系统和SD卡需要更高的电压来驱动它,可将3.3V电压换成5V电压,SD卡与串口都要上5V电压。

2、如果问题依然存在,可能是因为一些杜邦线的接触不良或太长,可以试着移动SD卡,在某个角度可能会初始化成功。

3、SPI协议是高速运作的,需要尽可能的降低时钟速率。

4、耐心等待个一分钟,可能就成功了。

七、总结

        此次实验确实很难成功,可能是因为最小版不太行,如果大一点的版本的话,可能成功率会上升,不过经过了一番波折在老师和同学们的帮助下,成功做出了结果。

参考链接:

[1]STM32用cube配置FATFS模式下SPI读写SD卡_Drive World的博客-CSDN博客

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
STM32F103C8T6是一款常用的32位微控制器芯片,它具有强大的性能和丰富的功能,并且可广泛应用于各种嵌入式系统中。SD卡是一种常见的存储介质,它具有小巧、便携和容量大等优点。FAT文件系统是一种常用的文件系统,广泛应用于各种嵌入式设备中,包括SD卡。 在STM32F103C8T6中使用SD卡FAT文件系统可以实现嵌入式设备的数据存储和读取功能。首先,我们需要将SD卡STM32F103C8T6进行连接,通过SPI或SDIO总线接口进行数据通信。然后,我们需要在嵌入式系统中添加FAT文件系统的支持,以便能够对SD卡进行格式化和文件读写操作。 在使用SD卡之前,我们需要初始化SD卡接口,并进行SD卡的识别和初始化。然后,我们可以对SD卡进行格式化操作,以便在SD卡中创建FAT文件系统。格式化完成后,我们可以使用文件系统的操作函数对SD卡中的文件进行读写操作。例如,我们可以使用文件操作函数创建、打开、读取和写入文件,并可以进行文件的复制、删除和重命名等操作。 在使用STM32F103C8T6和SD卡+FAT文件系统时,需要注意以下几点。首先,SD卡的连接要正确可靠,并确保SD卡的供电电压和信号电平与STM32F103C8T6兼容。其次,需要合理管理SD卡的存储空间,避免溢出和数据丢失。此外,还需要正确处理SD卡的插入和拔出事件,以免对SD卡造成损坏。 总之,通过在STM32F103C8T6上使用SD卡FAT文件系统,我们可以实现嵌入式设备的数据存储和读取功能,从而提高设备的可扩展性和实用性。这种组合应用在物联网、工业控制和智能家居等领域有着广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值