资源简介
基于ST例程V4.5.0,修正了少量bug。固件库函数请用3.5,否则初始化出错。
代码片段和文件信息
#include “includes.h“
#include “drvSDCard.h“
#include “sdio_sd.h“
/**
* @brief DeInitializes the SDIO interface.
* @param None
* @retval None
*/
void SD_LowLevel_DeInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/*!< Disable SDIO Clock */
SDIO_ClockCmd(DISABLE);
/*!< Set Power State to OFF */
SDIO_SetPowerState(SDIO_PowerState_OFF);
/*!< DeInitializes the SDIO peripheral */
SDIO_DeInit();
/*!< Disable the SDIO AHB Clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_SDIO DISABLE);
/*!< Configure PC.08 PC.09 PC.10 PC.11 PC.12 pin: D0 D1 D2 D3 CLK pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC &GPIO_InitStructure);
/*!< Configure PD.02 CMD line */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOD &GPIO_InitStructure);
}
/**
* @brief Initializes the SD Card and put it into StandBy State (Ready for
* data transfer).
* @param None
* @retval None
*/
void SD_LowLevel_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/*!< GPIOC and GPIOD Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | SD_DETECT_GPIO_CLK ENABLE);
/*!< Configure PC.08 PC.09 PC.10 PC.11 PC.12 pin: D0 D1 D2 D3 CLK pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC &GPIO_InitStructure);
/*!< Configure PD.02 CMD line */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOD &GPIO_InitStructure);
/*!< Configure SD_SPI_DETECT_PIN pin: SD Card detect pin */
GPIO_InitStructure.GPIO_Pin = SD_DETECT_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(SD_DETECT_GPIO_PORT &GPIO_InitStructure);
/*!< Enable the SDIO AHB Clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_SDIO ENABLE);
/*!< Enable the DMA2 Clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2 ENABLE);
}
/**
* @brief Configures the DMA2 Channel4 for SDIO Tx request.
* @param BufferSRC: pointer to the source buffer
* @param BufferSize: buffer size
* @retval None
*/
void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC uint32_t BufferSize)
{
DMA_InitTypeDef DMA_InitStructure;
DMA_ClearFlag(DMA2_FLAG_TC4 | DMA2_FLAG_TE4 | DMA2_FLAG_HT4 | DMA2_FLAG_GL4);
/*!< DMA2 Channel4 disable */
DMA_Cmd(DMA2_Channel4 DISABLE);
/*!< DMA2 Channel4 Config */
DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)SDIO_FIFO_ADDRESS;
DMA_InitStructure.DMA_MemorybaseAddr = (uint32_t)BufferSRC;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = BufferSize / 4;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 915 2012-03-12 13:53 drvSDCard.h
文件 82033 2012-03-12 14:14 sdio_sd.c
文件 18218 2012-03-02 09:48 sdio_sd.h
文件 7122 2012-03-12 14:12 drvSDCard.c
----------- --------- ---------- ----- ----
108288 4
- 上一篇:D-ITG 分布式流量生成软件
- 下一篇:Lua中调用C函数
相关资源
- STM32 FM25CL64B 铁电存储器
- STM32 库函数的485通讯测试程序
- ODrive-fw-v0.3.6_keil.zip
- STM32F103的PWM的扫频程序
- ADS1292驱动程序 STM32 2020省TI杯电赛资
- STM32F103读取MPU6050原始数据
- stm32+esp8266
- STM32F4驱动线阵CCD——TCD1304
- stm32 IO口方式驱动WS2813B
- STM32f103两线PT100例程.rar
- STM32LL库使用指南工程模板
- SWD模式下调试STM32程序的方法
- STM32 红外遥控
- GD5F4G.zip
- STM32连接阿里云入门手册.pdf
- 麦轮底盘实验_手动.zip
- 基于STM32的数码管显示模板
- 图片提取软件内有教程
- STM32模拟SPi.rar
- STM32F407 US100 USART串口超声波
- MPU6050移植DMP库
- STM32F移植到STM32L应用手册中文版
- stm32f10x_dsp库中文手册(FFT)
- STM32F407单通道ADC例程
-
DAPli
nk stm32f103cbt6内核 原理图及使用 - STM32F412工程模板
- artnet for stm32F413+W5500
- STM32F103ZET6核心板原理图和封装库
- 基于stm32f103zet6de条码识别
- HDC1080 模拟I2C驱动
评论
共有 条评论