# STM32SD **Repository Path**: cao_gao/STM32SD ## Basic Information - **Project Name**: STM32SD - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-13 - **Last Updated**: 2023-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32 SD library for Arduino With an STM32 board with SD card slot availability, this library enables reading and writing on SD card using SD card slot of a STM32 board (NUCLEO, DISCOVERY, ...). This library follow Arduino API. For more information about it, please visit: http://www.arduino.cc/en/Reference/SD ## Dependency This library is based on FatFs, a generic FAT file system module for small embedded systems. [http://elm-chan.org/fsw/ff](http://elm-chan.org/fsw/ff/00index_e.html) The FatFs has been ported as Arduino library [here](https://github.com/stm32duino/FatFs). The STM32SD library depends on it. ## Configuration ### FatFs The FatFs has several user defined options, which is specified from within the `ffconf.h` file. This library provides a default user defined options file named `ffconf_default.h`. User can provide his own defined options by adding his configuration in a file named `ffconf_custom.h` at sketch level or in variant folder. ### SD Some default definitions can be overridden using: * board `variant.h` * `build_opt.h`: see [Customize build options](https://github.com/stm32duino/wiki/wiki/Customize-build-options-using-build_opt.h) * `hal_conf_extra.h`: see [HAL configuration](https://github.com/stm32duino/wiki/wiki/HAL-configuration) #### SD configurations * `SD_INSTANCE`: some STM32 can have 2 SD peripherals `SDMMC1` and `SDMMC2`, note that this library can managed only one peripheral * `SDMMC1` (default) * `SDMMC2` * `SD_HW_FLOW_CTRL`: specifies whether the SDMMC hardware flow control is enabled or disabled * `SD_HW_FLOW_CTRL_ENABLE` * `SD_HW_FLOW_CTRL_DISABLE` (default) * `SD_BUS_WIDE`: specifies the SDMMC bus width * `SD_BUS_WIDE_1B` * `SD_BUS_WIDE_4B` (default) * `SD_BUS_WIDE_8B` #### SD Transceiver * `SD_TRANSCEIVER_MODE`: specifies whether external Transceiver is enabled or disabled. Available only on some STM32 * `SDMMC_TRANSCEIVER_ENABLE` * `SDMMC_TRANSCEIVER_DISABLE` (default) * `SD_TRANSCEIVER_EN` pin number to enable the level shifter * `SD_TRANSCEIVER_SEL` pin number for voltage selection #### SD detect and timeout * `SD_DETECT_PIN` pin number * `SD_DATATIMEOUT` constant for Read/Write block