根据当前所用开发板原理图为例,SD卡卡槽的接口与STM32 IO口对应如下: PC11 片选 SDCardCS PC12 时钟 SDCardSCLK PD2 输出 SPI_MOSI--主机输出从机输入 PC8 输入 SPI_MISO--主机输入从机输出 SD卡与开发板的SPI方式接线关系如下: DATA0---PC8-----OUT---MISO---主机输入从机
向SD卡发送0xFF,如果SD卡返回0xFE就表示等待成功。 图5-4-1 2、收到返回的数据起始令牌之后就可以连续读取数据了(接收的数量以传入的cnt为准),读完数据发送两个伪CRC 图5-4-2 5.5 SPI模式下: 向SD卡指定扇区写数据(SDCardWriteData) 封装的函数原型: SDCardWriteData(u8*buf,u32 sector,u32 cnt) 写...
*/extern SD_HandleTypeDef uSdHandle;staticvoidViewRootDir(void){UINTstatus;UINTattributes;ULONGsize;UINTyear;UINTmonth;UINTday;UINThour;UINTminute;UINTsecond;UINTcnt;ULONG64available_bytes;/* 挂载SD卡 */status=fx_media_open(&sdio_disk,"STM32_SDIO_DISK",fx_stm32_sd_driver,0,media_memory,sizeof...
本文将主要分享关于使用 CubeMx 配置 stm32 的工程,通过SDIO总线完成 SD卡/SD nand 的读写,并配置FATFS,采用文件操作实现对 SD卡/SD nand 的读写操作;此外还将分享博主在调试过程中遇到的一些问题,比如CubeMx自动生成的驱动存在的bug等,以及分享关于驱动部分的代码分析!
首先查看小熊派开发板的原理图: 然后根据原理图配置 SDMMC 接口: 配置时钟树 STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可: 生成工程设置 代码生成设置 最后设置生成独立的初始化文件: 生成代码 点击GENERATE CODE即可生成MDK-V5工程:
还只做过spi的
关于SD卡/SDnand 的驱动,有了CubeMx之后其实基本上都自动生成了对应的驱动了,基本上把驱动配置一下之后,自己写一些应用就可以完成基本的读写了,同时关于FATFS文件系统,也可以直接采用CubeMx配置,也不用自己移植,因此使用STM32开发这些还是比较爽的!不过使用过程中也有一些坑,自动生成的驱动有时候也还是有一些bug,因...
图50.4.1 SD卡接口与STM32连接原理图 microSD卡座在开发板正面(老版本探索者在背面),卡座和STM32...
关于SD卡/SDnand 的驱动,有了CubeMx之后其实基本上都自动生成了对应的驱动了,基本上把驱动配置一下之后,自己写一些应用就可以完成基本的读写了,同时关于FATFS文件系统,也可以直接采用CubeMx配置,也不用自己移植,因此使用STM32开发这些还是比较爽的!不过使用过程中也有一些坑,自动生成的驱动有时候也还是有一些bug,因...
把里面的#define BSP_USING_SDI的注释去掉,添加#include "stm32f4xx_hal_sd.h"。