# think3r_stm32f103_SD_SPI_FATFS **Repository Path**: think3r/think3r_stm32f103_sd_spi_fatfs ## Basic Information - **Project Name**: think3r_stm32f103_SD_SPI_FATFS - **Description**: No description available - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2017-06-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32_SPI_SD卡 含 Usmart 测试 ## **V3.0** > 测试状态:`已测试` >------------测试人员: `@think3r` >------------测试时间:2017-05-07 13:28:16 ## 代码功能: 1. 增添文件:`exfuns.c` 和 `fatfster.c` 的编译。 2. 添加 usmart 串口调试 fatfs 功能。 3. 用 `switch` 语句,重写函数 `SD_Fatfs_Debug()` ;并修改`fatfster.c` 文件中封装的函数,使之增添串口打印函数运行结果的 debug 功能。 4. 删除 `main.c` 中的无用函数。 5. ***待解决问题:*** - 重定向之后的 `printf` 函数与 FATFS 文件系统之间的冲突问题. - [链接1](http://openedv.com/thread-7870-1-1.html) - [链接2](http://stackoverflow.com/questions/43350105/fatfs-printf-is-writing-to-the-file) ---- ## **V2.0** > 测试状态:`已测试` >------------测试人员: `@think3r` >------------测试时间:2017-05-05 22:30:45 ## 代码功能 1. 增加 `SD_Fatfs_Debug()`函数,用于文件读写 debug 2. 增加 `mf_showfree()`函数,通过串口输出 SD卡容量相关 3. **fix** problem >The volume has no work area. 4. 成功在 SD 卡中创建文件,并向其中写入数据。 5. ***待解决问题:*** - `exfuns_init()` 函数与相关变量申请之间的关系。 - 重定向之后的 `printf` 函数与 FATFS 文件系统之间的冲突问题. - [链接1](http://openedv.com/thread-7870-1-1.html) - [链接2](http://stackoverflow.com/questions/43350105/fatfs-printf-is-writing-to-the-file) ---- ## **V1.0** >测试状态: `已测试` >------------测试人员: `@think3r` >------------测试时间:2017-05-01 18:40:30 #### 代码功能 1. 完成 SD卡 初始化 2. 串口打印 SD卡 类型、串口打印 SD卡 容量 3. 串口打印 SD卡 0 扇区的数据 #### **资源对照:** - SPI1 - GPIOA.5 --- SPI1_SCK - GPIOA.6 --- SPI1_MISO - GPIOA.7 --- SPI1_MOSI - SD_CS ----- PA(3) - 注: - W25X16 的 CS -- PA(2), - 对高容量 SD卡,块大小固定为512字节 ---- ## **V0.1** 制作 STM32_Mini 工程模板 -----------------------------2017-04-17 16:30:22 ### 已添加外设 >测试状态: `已测试` >------------测试时间:2017-04-17 16:42:47 - 开启delay函数支持 - **`LED0 & LED1`** - **`UART1`** 用于 `printf` 函数重定向 - **`RTC`** 实时时钟 - **`KEY0、 KEY1、 WK_UP`** 三个按键,使用外部中断方式操作 - 设置NVIC中断分组2:2位抢占优先级,2位响应优先级 - 开启 **`USMART`** 串口调试,使用了定时器 4 定时扫描 - 定时器 TIM5 未开启,可通过函数 **`void TIM5_Init(u16 arr,u16 psr); `** 开启 - **`/HarderWare/include.h`** 头文件中包含了这些外设的头文件,需要修改时,请注意。 --------