1 前言
本文将介绍使用CubeMx工具从零开始制作一个基于SD卡的文件系统,以便后续使用此功能者参考。
2 准备工作
本文工程得测试将以STM3240G-EVAL这个ST官方的评估板为测试平台,所有这块板子的一些外部组件连接方式有必要先了解一下。
LED1~LED4分别使用管脚PG6,PG8,PI9,PC7,输出高电平LED灯点亮,用户按键使用PG15管脚,按下时为低电平。
如上图,MCU使用的HSE是25M晶振。SD卡使用STM32F407固定的6个管脚如上图所示D0(PC8),D1(PC9),D2(PC10),D3(PC11),CLK(PC12), CMD(PD2). SD卡插入检测脚为用户自定义的管脚,在STM3240G这块ST官方的评估板上是使用PH13管脚。
3 创建CubeMx工程与代码修改
3.1 创建CubeMx工程
打开CubeMx创建一个基于STM32F407IGHx的工程,使能RCC的HSE,外部晶振模式,SDIO使用4位总线宽度,如下图所示:
并在pinout右边将PH13设置为INPUT模式:
接来下配置时钟树,将主屏配置为168M:
在配置页面下的配置如下图所示:
在中间件添加SD Card类型的FATFS:
在配置中的文件系统相关参数配置都使用默认参数值。
另外一点非常重要的是,在工程设置内配置栈大小为0x800,默认的0x400是不够的,运行时会出错。如下: