QSPI FLASH与SD卡同时支持fatfs文件系统

简介: QSPI FLASH与SD卡同时支持fatfs文件系统

上一篇我们已经在QSPI FLASH上支持了fatfs文件系统:这次我们继续在该代码上支持SD卡文件系统,ST官方在维护CubeMX上对多个硬件驱动的fatfs兼容性做得非常好,所以还是用STM32CubeMX来配置就可以了:

小熊派上硬件SD卡接口:

640.png

1、SD卡配置

STM32Cube-19 | 使用SDMMC接口读写SD卡数据

640.png

2、SD卡fatfs配置

STM32Cube-20(补充) | 在SD卡上移植FATFS文件系统

由于上一节我们已经配置了fatfs的参数,再加上STM32CubeMX已经对SD卡做了支持,所以我们将这个选项勾上就可以了,其余默认即可,然后直接生成代码工程。


640.png

3、编写同时测试QSPI FLASH以及SD卡fatfs的程序

640.png

很幸运的是,官方已经帮我们把代码都写好了,不需要写一行,直接进入应用编程即可。


由于代码过长,这里不便全部展示,感兴趣的去我的码云上clone工程下载测试。

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
    /* USER CODE BEGIN 1 */
    /* USER CODE END 1 */
    /* MCU Configuration--------------------------------------------------------*/
    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();
    /* USER CODE BEGIN Init */
    /* USER CODE END Init */
    /* Configure the system clock */
    SystemClock_Config();
    /* USER CODE BEGIN SysInit */
    /* USER CODE END SysInit */
    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_I2C1_Init();
    MX_USART1_UART_Init();
    MX_QUADSPI_Init();
    MX_FATFS_Init();
    MX_SDMMC1_SD_Init();
    /* USER CODE BEGIN 2 */
    Mount_SD_Fatfs();
    Mount_QSPI_FLASH_Fatfs();
    test_get_qspi_cap();
    test_get_sd_card_cap();
    test_sd_card_fatfs();
    test_spi_flash_fatfs();
    /* USER CODE END 2 */
    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1)
    {
        /* USER CODE END WHILE */
        /* USER CODE BEGIN 3 */
    }
    /* USER CODE END 3 */
}

运行结果:

640.png

获取完整demo:

码云仓库:https://gitee.com/morixinguan/bear-pi/tree/master/20.QSPI_SD_Card_Sync_Mount_Fatfs

640.png

获取方法:

git clone https://gitee.com/morixinguan/bear-pi.git

即可获取本次实验工程全部代码。

往期精彩

一个产品级MCU内存管理方案


嵌入式热敏打印机模块-优库E58T-1玩起来


腾讯云IoT Explorer&小程序腾讯连连接入方案


整理了很久之前在码云/Github/CSDN上收藏的嵌入式产品级项目分享开源

目录
相关文章
|
5月前
|
存储 缓存 监控
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
综上所述,构建一个基于FATFS/Littlefs文件系统的日志框架需要对文件系统的操作有深入理解,并以此为基础设计一套完整的日志处理机制。这样的框架不仅能够确保日志数据的完整性和系统的鲁棒性,同时还能够满足嵌入式系统对于性能和资源使用的严格要求。
222 4
|
8月前
|
存储 Linux 内存技术
嵌入式linux下获取flash分区大小
嵌入式linux下获取flash分区大小
89 0
|
存储 传感器 缓存
让QSPI FLASH(W25Q64)支持Fatfs文件系统
让QSPI FLASH(W25Q64)支持Fatfs文件系统
561 0
|
存储 Linux 内存技术
嵌入式Linux系列第16篇:使用SD卡
嵌入式Linux系列第16篇:使用SD卡
|
存储 块存储 内存技术
(10)ArduPilot文件系统
(10)ArduPilot文件系统
161 0
制作U盘启动时【usb-hdd和usb-zip的区别】
制作U盘启动时【usb-hdd和usb-zip的区别】
806 0
制作U盘启动时【usb-hdd和usb-zip的区别】
|
存储 安全 API
ZYNQ-使用SD卡读写文本数据
ZYNQ-使用SD卡读写文本数据
911 0
ZYNQ-使用SD卡读写文本数据
SD卡相关
SD卡相关
52 0
|
存储 IDE 编译器
基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统
基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统
618 0
基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统