如何使用STM32CubeIDE在SD卡上创建文件系统?

介绍

数据记录应用程序需要在一段时间内存储大量数据。SD卡是存储数据的方便解决方案,许多STM32产品都包含适当的硬件接口。使用标准文件系统在SD卡上写入数据可确保在其他设备或计算机上可以轻松访问数据。使用STM32系列微控制器可用的各种ST工具,可以很容易地添加文件系统和SD卡驱动程序。
本文向您展示如何使用STM32和ST工具集在SD卡上创建文件系统。
 

预备知识

STM32探索套件和评估板包括一个SD卡插槽。虽然本示例使用STM32F746G-DISCO板,但也可以使用任何其他带有SD卡插槽的STM32板,同时对不同目标板的软件配置进行适当更改。
  • 硬件:STM32F746G-DISCO

  • 软件:STM32管
 

步骤

  1. 打开STM32CubIDE
  2. 创建一个新的STM32项目并选择STM32F746G-DISCO模板

  1. 为您的项目命名,然后单击“完成”


 
  1. 选择“否”作为板项目选项


我们将使用板配置文件中的预设外围设备配置。
 
  1. 打开“关联透视”,单击“是”

  1. SDMMC配置

SDMMC是一种可用于连接SD卡的外围设备。
  • 在“连接”中的“SDMMC1”中启用“SD模式”,并启用全局中断

 
  • 在“连接”中的“SDMMC1”中启用“SD模式”,并启用全局中断
  1. FatFs配置
FatFs是一个开源的文件系统中间件。它集成在STM32多维数据集库中。
  • 在“MiddleWare”中将FatFs配置为SD卡模式
  • 在平台设置中选择PC13作为Detect_SDIO

 
  • 使用默认设置为TX和RX添加DMA

这将允许实现最佳性能。
  1. 时钟配置
 
  • 转到时钟配置选项卡,然后按是以解决时钟问题
  1. 项目经理设置:
  • 在项目管理器选项卡中,增加堆和堆栈大小,因为我们使用的FatFs中间件需要更多内存:
  1. 代码生成
  • 现在保存项目以生成代码:
  1. 打开关联透视

  1. 添加代码
/*用户代码开始1*/FRESULT res;/*FatFs函数公共结果代码*/uint32_t字节写入,字节读取;/*文件写入/读取计数*/uint8_t wtext[]=“STM32 FATFS非常有效!”;/*文件写入缓冲区*/uint8_t rtext[_MAX_SS];/*文件读取缓冲区*/*用户代码结束1*/…/*用户代码开始2*/if(f_mount(&SDFatFS,(TCHAR const*)SDPath,0)!=FR_OK){Error_Handler();}else{if(f_mkfs((TCHAR const*)SDPath,FM_ANY,0,rtext,sizeof(rtext)!=FR_OK(void*)&byteswritten);如果((byteswriten=0)||(res!=FR_OK)){Error_Handler();}else{f_close(&SDFile);}}}f_mount(&SDFatFS,(TCHAR const*)NULL,0);/*用户代码端2*/
  1. 构建并闪存代码

当代码被执行时,SD卡将被格式化并写入一个文件,您可以用SD卡读卡器检查内容。
 

链接

STM32管:
STM32CubeIDE-STM32集成开发环境-STMicroelectronics
脂肪脂肪酸
FatFs-通用FAT文件系统模块(elm-chan.org)
 

视频

这是一个视频,解释了如何使用STM32CubeIDE在SD卡上创建文件系统,如本文所述。
STM32–在SD卡上创建文件系统-YouTube