资源简介
本例程利用fat从tf卡里读取音频文件,通过spi传递到vs1003b进行播放。并实现了控制vs1003b io口的功能。

代码片段和文件信息
/*-----------------------------------------------------------------------*/
/* Low level disk I/O module skeleton for FatFs (C)ChaN 2007 */
/*-----------------------------------------------------------------------*/
/* This is a stub disk I/O module that acts as front end of the existing */
/* disk I/O modules and attach it to FatFs module with common interface. */
/*-----------------------------------------------------------------------*/
#include “diskio.h“
#include “sdcard.h“
/*-----------------------------------------------------------------------*/
/* Correspondence between physical drive number and physical drive. */
#define BlockSize 512 /* Block Size in Bytes */
#define SD_Mode 0 //0 dma1 interrupt
static SD_CardInfo SDCardInfo;
/*-----------------------------------------------------------------------*/
/* Inidialize a Drive */
DSTATUS disk_initialize (
BYTE drv /* Physical drive nmuber (0..) */
)
{
SD_Error Status;
if(drv==0)
{
Status = SD_Init();
if(Status != SD_OK)
{
return STA_NOINIT; //其他错误:初始化失败
}
else
{
Status = SD_GetCardInfo(&SDCardInfo); //读sd卡信息
if (Status != SD_OK)
{
return STA_NOINIT;//RES_NOTRDY; //报NOT READY错误
}
// Select Card
Status = SD_SelectDeselect((u32) (SDCardInfo.RCA << 16));
if (Status != SD_OK)
{
return STA_NOINIT;//RES_NOTRDY; //报NOT READY错误
}
switch(SD_Mode)
{
case 0: //dma方式
Status = SD_EnableWideBusOperation(SDIO_BusWide_1b);
if (Status != SD_OK)
{
return RES_NOTRDY; //报NOT READY错误
}
Status = SD_SetDeviceMode(SD_DMA_MODE);
if (Status != SD_OK)
{
return RES_NOTRDY; //报NOT READY错误
}
break;
case 1: //中断方式
Status = SD_EnableWideBusOperation(SDIO_BusWide_1b);
if (Status != SD_OK)
{
return RES_NOTRDY; //报NOT READY错误
}
Status = SD_SetDeviceMode(SD_INTERRUPT_MODE);
if (Status != SD_OK)
{
return RES_NOTRDY; //报NOT READY错误
}
break;
default :
return RES_NOTRDY;
}
return 0; //初始化成功
}
}
else//仅支持磁盘0的操作
{
return STA_NOINIT;
}
}
/*-----------------------------------------------------------------------*/
/* Return Disk Status */
DSTATUS disk_status (
BYTE drv /* Physical drive nmuber (0..) */
)
{
if(drv==0)
{
return 0; //初始化成功
}
else //仅支持磁盘0的操作
{
return STA_NOINIT;
}
}
/*--------------------------------------------------------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9882 2010-05-06 14:47 8.Vs1003b\FatFS\diskio.c
文件 1907 2010-05-06 14:49 8.Vs1003b\FatFS\diskio.h
文件 100215 2010-05-09 16:22 8.Vs1003b\FatFS\ff.c
文件 29898 2010-05-09 16:22 8.Vs1003b\FatFS\ff.h
文件 6339 2009-11-03 00:44 8.Vs1003b\FatFS\ffconf.h
文件 898 2010-05-06 14:56 8.Vs1003b\FatFS\integer.h
文件 249495 2009-06-05 23:03 8.Vs1003b\FatFS\option\cc932.c
文件 724207 2009-06-05 23:02 8.Vs1003b\FatFS\option\cc936.c
文件 567659 2009-06-05 23:03 8.Vs1003b\FatFS\option\cc949.c
文件 450671 2009-06-05 23:03 8.Vs1003b\FatFS\option\cc950.c
文件 30143 2009-06-13 20:45 8.Vs1003b\FatFS\option\ccsbcs.c
文件 4058 2010-02-12 23:50 8.Vs1003b\FatFS\option\syncobj.c
文件 5239 2009-11-03 00:43 8.Vs1003b\FatFS\ReadMe.txt
文件 205 2010-07-20 20:25 8.Vs1003b\Jli
文件 16249 2009-04-06 10:30 8.Vs1003b\Lib\core_cm3.c
文件 42077 2009-04-06 10:30 8.Vs1003b\Lib\core_cm3.h
文件 4951 2009-04-06 10:30 8.Vs1003b\Lib\inc\misc.h
文件 19558 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_adc.h
文件 7373 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_bkp.h
文件 14289 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_can.h
文件 1980 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_crc.h
文件 10271 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_dac.h
文件 2980 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_dbgmcu.h
文件 18790 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_dma.h
文件 5833 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_exti.h
文件 14446 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_flash.h
文件 17276 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_fsmc.h
文件 15050 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_gpio.h
文件 16923 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_i2c.h
文件 3677 2009-04-06 10:30 8.Vs1003b\Lib\inc\stm32f10x_iwdg.h
............此处省略61个文件信息
- 上一篇:改进模拟退火算法求解TSP问题
- 下一篇:qt5 qftp官方源码
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
评论
共有 条评论