Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <freertos/FreeRTOS.h>
- #include "esp_vfs_fat.h"
- #include "sdmmc_cmd.h"
- static const char *TAG = "sdcard";
- #define MOUNT_POINT "/sdcard"
- #define PIN_MOSI 17
- #define PIN_MISO 16
- #define PIN_SCK 14
- #define PIN_CS 4
- void app_main(void)
- {
- esp_err_t ret;
- esp_vfs_fat_sdmmc_mount_config_t mount_config;
- mount_config.format_if_mount_failed = false;
- mount_config.max_files = 16;
- mount_config.allocation_unit_size = 0;
- sdmmc_card_t *card;
- ESP_LOGI(TAG, "Инициализация SD-карты через SPI");
- sdmmc_host_t host = SDSPI_HOST_DEFAULT();
- host.max_freq_khz = 7500;
- spi_bus_config_t bus_cfg;
- memset(&bus_cfg, 0x0, sizeof(spi_bus_config_t));
- bus_cfg.mosi_io_num = PIN_MOSI;
- bus_cfg.miso_io_num = PIN_MISO;
- bus_cfg.sclk_io_num = PIN_SCK;
- bus_cfg.quadwp_io_num = -1;
- bus_cfg.quadhd_io_num = -1;
- bus_cfg.max_transfer_sz = 4000;
- ret = spi_bus_initialize(host.slot, &bus_cfg, SPI_DMA_CH_AUTO);
- if (ret != ESP_OK) {
- ESP_LOGE(TAG, "Не удалось настроить шину.");
- return;
- }
- sdspi_device_config_t slot_config = SDSPI_DEVICE_CONFIG_DEFAULT();
- slot_config.gpio_cs = PIN_CS;
- slot_config.host_id = host.slot;
- const char mount_point[] = MOUNT_POINT;
- ESP_LOGI(TAG, "Монтирование файловой системы");
- ret = esp_vfs_fat_sdspi_mount(mount_point, &host, &slot_config, &mount_config, &card);
- if (ret != ESP_OK) {
- if (ret == ESP_FAIL) {
- ESP_LOGE(TAG, "Не удалось смонтировать файловую систему.");
- } else {
- ESP_LOGE(TAG, "Не удалось инициализировать SD-карту (%s).", esp_err_to_name(ret));
- }
- return;
- }
- ESP_LOGI(TAG, "Файловая система смонтирована");
- ESP_LOGI(TAG, "TTX SD-карты:");
- sdmmc_card_print_info(stdout, card);
- srand(time(NULL));
- vTaskDelay(1000);
- FILE * fpw = fopen(MOUNT_POINT"/rand.txt", "wr");
- if (fpw == NULL) {
- ESP_LOGE(TAG, "Не удалось создать/открыть файл rand.txt.");
- return;
- }
- for (size_t i = 0; i < 10; i++)
- fprintf(fpw, "%d\n", rand() % 100000000);
- fclose(fpw);
- esp_vfs_fat_sdcard_unmount(mount_point, card);
- ESP_LOGI(TAG, "Файловая система размонтирована");
- spi_bus_free(host.slot);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement