如何使用STM32CubeIDE在SD卡上创建文件系统
如何使用STM32CubeIDE在SD卡上创建文件系统?简介数据记录应用程序需要在一段时间内存储大量数据。SD卡是存储数据的方便解决方案,许多STM32产品包括。。。
如何使用STM32CubeIDE在SD卡上创建文件系统?
介绍
数据记录应用程序需要在一段时间内存储大量数据。SD卡是存储数据的方便解决方案,许多STM32产品都包含适当的硬件接口。使用标准文件系统在SD卡上写入数据可确保在其他设备或计算机上可以轻松访问数据。使用STM32系列微控制器可用的各种ST工具,可以很容易地添加文件系统和SD卡驱动程序。本文向您展示如何使用STM32和ST工具集在SD卡上创建文件系统。
预备知识
STM32探索套件和评估板包括一个SD卡插槽。虽然本示例使用STM32F746G-DISCO板,但也可以使用任何其他带有SD卡插槽的STM32板,同时对不同目标板的软件配置进行适当更改。- 硬件:STM32F746G-DISCO

- 软件:STM32管
步骤
- 打开STM32CubIDE
- 创建一个新的STM32项目并选择STM32F746G-DISCO模板

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

- 选择“否”作为板项目选项

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

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

- 在“连接”中的“SDMMC1”中启用“SD模式”,并启用全局中断

- FatFs配置
- 在“MiddleWare”中将FatFs配置为SD卡模式
- 在平台设置中选择PC13作为Detect_SDIO

- 使用默认设置为TX和RX添加DMA
这将允许实现最佳性能。

- 时钟配置
- 转到时钟配置选项卡,然后按是以解决时钟问题

- 项目经理设置:
- 在项目管理器选项卡中,增加堆和堆栈大小,因为我们使用的FatFs中间件需要更多内存:

- 代码生成
- 现在保存项目以生成代码:

- 打开关联透视

- 添加代码
/*用户代码开始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*/
- 构建并闪存代码

当代码被执行时,SD卡将被格式化并写入一个文件,您可以用SD卡读卡器检查内容。
链接
STM32管:STM32CubeIDE-STM32集成开发环境-STMicroelectronics
脂肪脂肪酸
FatFs-通用FAT文件系统模块(elm-chan.org)
视频
这是一个视频,解释了如何使用STM32CubeIDE在SD卡上创建文件系统,如本文所述。STM32–在SD卡上创建文件系统-YouTube