STM32之SD卡测试,采用Cubemax配置

时间:2024-03-18 14:07:32

1、SD卡(microSD 卡)可以通过SPI总线、SDIO-1bit、SDIO-4bit方式与控制器通信,但传输数据速度不同。
2、SD卡座与单片机连接时候,网上、SD卡官方手册都会建议接信号线上拉电阻,其目的是防止SD卡没有插入插槽时候信号线悬空。对于SDIO-1bit方式连接,d1-d3信号线是用不到的,根据上述接上拉电阻原因,此三根线是不用接上拉电阻的,音乐播放器事实证明也完全不用。为兼容所有SD卡,统一规定SD卡座上信号线(cmd、d0-d3,clk也接上)全部都连接上拉电阻,电阻选择10K左右,需要的信号线再接到单片机。如果有元件成本限定,则只在连接到单片机的信号线上使用上拉电阻。
STM32之SD卡测试,采用Cubemax配置
3、Cubemax配置。
(1)【SYS】中【Debug】选择serial wire,这是选择SWD调试方式,只需要SWC、SWD两根信号线外加+-线即可调试、下载程序。
STM32之SD卡测试,采用Cubemax配置
(2)【RCC】中,根据情况选择外部晶振。
STM32之SD卡测试,采用Cubemax配置
(3)【SDIO】中,选择1-bit模式或者4-bit模式。
STM32之SD卡测试,采用Cubemax配置
(4)【fatfs】中,选择文件系统。
STM32之SD卡测试,采用Cubemax配置
(5)时钟图中配置。
配置为外部时钟,锁相环(带安全锁定保护),总线时钟168MHz。其他默认。
STM32之SD卡测试,采用Cubemax配置
(6)经过上述配置,SDIO初步配置完成,可进行测试。如果测试通过,则说明硬件连接没有问题。下一步可细化配置,如开启DMA传输等。
4、测试代码
(1)文件main.c中添加如下全局变量
STM32之SD卡测试,采用Cubemax配置
(2)主函数main中添加如下代码
STM32之SD卡测试,采用Cubemax配置
(3)改变f_open函数打开方式,在调试状态下查看result返回值,即可看出文件操作是否成功。
(4)读操作
STM32之SD卡测试,采用Cubemax配置
(5)关闭文件
STM32之SD卡测试,采用Cubemax配置