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

本文详细介绍了如何使用STM32CubeMX配置STM32L431RCT6的SDMMC接口,从硬件准备、MDK工程生成到编写读写SD卡的代码,包括配置时钟源、重定向printf函数、读取和写入SD卡数据的步骤,提供了完整的实践过程。
摘要由CSDN通过智能技术生成

寻求更好的阅读体验,请移步:Mculover666的个人博客

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SDMMC外设读取SD卡数据。

1. 准备工作

硬件准备

  • 开发板
    首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):

mark

  • Micro SD卡
    小熊派开发板板载 Micro SD 卡槽,最大支持 32 GB,需要提前自行准备一张 Micro SD卡,如图:

mark

软件准备

  • 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码
  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
以下是ESP32-IDF逐行读写SD卡数据的参考代码: ```c #include <stdio.h> #include "esp_vfs_fat.h" #include "driver/sdmmc_host.h" #include "driver/sdspi_host.h" #include "sdmmc_cmd.h" #define PIN_NUM_MISO 2 #define PIN_NUM_MOSI 15 #define PIN_NUM_CLK 14 #define PIN_NUM_CS 13 void app_main(void) { esp_err_t ret; sdmmc_card_t* card; FILE* f; sdmmc_host_t host = SDSPI_HOST_DEFAULT(); sdspi_slot_config_t slot_config = SDSPI_SLOT_CONFIG_DEFAULT(); slot_config.gpio_miso = PIN_NUM_MISO; slot_config.gpio_mosi = PIN_NUM_MOSI; slot_config.gpio_sck = PIN_NUM_CLK; slot_config.gpio_cs = PIN_NUM_CS; ret = spi_bus_initialize(host.slot, &host.bus_config, slot_config.slot); assert(ret == ESP_OK); ret = esp_vfs_fat_sdspi_mount("/sdcard", &host, &slot_config, &card); assert(ret == ESP_OK); // 打开文件 f = fopen("/sdcard/hello.txt", "w"); if (f == NULL) { printf("Failed to open file for writing\n"); return; } fprintf(f, "Hello World!\n"); fclose(f); // 重新打开文件以进行读取 f = fopen("/sdcard/hello.txt", "r"); if (f == NULL) { printf("Failed to open file for reading\n"); return; } char line[128]; while (fgets(line, sizeof(line), f)) { printf("%s", line); } fclose(f); // 卸载SD卡 esp_vfs_fat_sdspi_unmount(); } ``` 这个例子使用SD卡SPI接口进行读写操作。在例子中,我们首先初始化SPI总线,然后挂载SD卡文件系统。我们可以使用fopen和fprintf函数向SD卡中写入文件,也可以使用fgets函数读取文件内容。最后,我们使用esp_vfs_fat_sdspi_unmount函数卸载SD卡
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mculover666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值