当前位置: 首页 > news >正文

RT-Thread+STM32L475VET6——TF 卡文件系统


文章目录

  • 前言
  • 一、板载资源
  • 二、具体步骤
    • 1.打开CubeMX进行USB配置
      • 1.1 使用外部高速时钟,并修改时钟树
      • 1.2 打开SPI1,参数默认即可(SPI根据自己需求调整)
      • 1.3 打开串口,参数默认
      • 1.4 生成工程
    • 2.配置SPI
      • 2.1 打开SPI驱动
      • 2.2 声明使用SPI1
      • 2.3 将stm32l4xx_hal_msp.c中void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)和void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)剪切至board.c
      • 2.4 使能SPI
    • 3. 打开其他配置
    • 编译,烧录


前言

本文采用开发板为STM32L475VET6(潘多拉开发板),使用RT_Thread Studio基于芯片开发模式,系统版本为4.0.3,完成TF 卡文件系统实验,展示如何在 TF 卡上创建文件系统(格式化卡),并挂载文件系统到 rt-thread 操作系统中


一、板载资源

TF 卡座通过 4 根线与 STM32 连接,SD 卡的片选(SD_CS)连接 PC3, SD 卡的 SPI 接口连接在 STM32L4 的 SPI1 上面
在这里插入图片描述

在这里插入图片描述

二、具体步骤

1.打开CubeMX进行USB配置

1.1 使用外部高速时钟,并修改时钟树

在这里插入图片描述
在这里插入图片描述

1.2 打开SPI1,参数默认即可(SPI根据自己需求调整)

在这里插入图片描述

1.3 打开串口,参数默认

在这里插入图片描述

1.4 生成工程

在这里插入图片描述

2.配置SPI

官方给出教程
在这里插入图片描述

2.1 打开SPI驱动

在这里插入图片描述

2.2 声明使用SPI1

在这里插入图片描述

2.3 将stm32l4xx_hal_msp.c中void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)和void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)剪切至board.c

在这里插入图片描述

2.4 使能SPI

在这里插入图片描述

3. 打开其他配置

在这里插入图片描述
在这里插入图片描述

编译,烧录

测试代码

/*
 * Copyright (c) 2006-2025, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2025-02-22     RT-Thread    first version
 */

#include <rtthread.h>
#include <board.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
static int rt_hw_spi1_tfcard(void)
{
    __HAL_RCC_GPIOC_CLK_ENABLE();
    rt_hw_spi_device_attach("spi1", "spi10", GPIOC, GPIO_PIN_3);
    return msd_init("sd0", "spi10");
}
INIT_APP_EXPORT(rt_hw_spi1_tfcard);

#include <rtthread.h>
#include <dfs_fs.h>

#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>

int main(void)
{
    /* 挂载 TF 卡中的文件系统,参数 elm 表示挂载的文件系统类型为 elm-fat 文件系统*/
    if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
    {
        LOG_I("Filesystem initialized!");
    }
    else
    {
        LOG_E("Failed to initialize filesystem!");
    }
    return 0;
}

在这里插入图片描述
如果显示Failed to initialize filesystem!,这是因为 TF 卡中还没有创建文件系统。如果确定自己的卡是 fat 格式,在 msh 中使用命令 mkfs -t elm sd0 可以在块设备 sd0 中创建 elm-fat 类型的文件系统,即对 TF 卡执行格式化。


相关文章:

  • 创建型模式 - 原型模式 (Prototype Pattern)
  • 【Leetcode】两数之和
  • 【Blender】三、材质篇--01,Blender材质基础 原理化BSDF
  • Go红队开发—基础语法入门
  • 如何在 Ubuntu 上安装和使用 Podman ?
  • 【STL】4.<list>
  • kotlin 知识点 七 泛型的高级特性
  • Java 入门第一课 InteliJ IDEA 的快捷操作
  • 阿里云可观测全面拥抱 OpenTelemetry 社区
  • 【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】
  • JVM相关面试题
  • 项目实战--网页五子棋(游戏房间)(6)
  • Pytorch实现之混合成员GAN训练自己的数据集
  • MySQL 使用 `WHERE` 子句时 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的区别解析
  • 第2课 树莓派镜像的烧录
  • SV基础(二):数据类型
  • C++ day6
  • 本地部署DeepSeek的硬件配置建议
  • 单目摄像头物体深度计算基础原理
  • SSL 证书是 SSL 协议实现安全通信的必要组成部分
  • 旅马大熊猫“福娃”“凤仪”平安回国
  • 一女游客在稻城亚丁景区因高反去世,急救两个多小时未能恢复生命体征
  • 国家防汛抗旱总指挥部对15个重点省份开展汛前实地督导检查
  • 新修订的《餐饮业促进和经营管理办法》公布,商务部解读
  • 韶关一企业将消防安装工程肢解发包,广东住建厅:罚款逾五万
  • 新华时评:让医德医风建设为健康中国护航