资源简介
本例程利用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官方源码
相关资源
- AD Altium Designer STM8 STM32 库
- STM32 两轮平衡车 程序 获取姿态传感器
- STM32F103使用定时器的捕获方式测量车
- STM32F407 步进电机含角度输出Keil代码
- stm32f103代码
- STM32F407 FSMC控制AD7606、SRAM、NOR FLASH
- STM32的GPIO口模拟串口通信.rar
- STM32F4 的DMA程序
- STM32控制电子罗盘彩屏显示角度
- stm32f103c8移植ucosII
- stm32f103通过modbus控制A6伺服电机
- STM32应用霍尔转速传感器.zip
- 基于stm32简易闹钟,采用DS3231实时时钟
- oled的代码
- STM32控制步进电机
- STM32F103RBT6 STM32最小系统 PCB文件+电路
- 基于stm32的i2c通信
- stm32DSP 库FFT
- STM32 DS1302驱动代码
- stm32频率计测量总结
- STM32-基于SD卡的FATFS文件系统
- STM32的CAN实验程序
- STM32-I2C程序例程
-
Jli
nk_ARM-OB_STM32固件(V8) - pca9685+stm32f103c8t6
- stm32f103c8t6+mpu9250读取九轴原始数据
- 基于stm32的图片显示
- 基于STM32的智能扫地机器人避障系统设
- STM32超声波测距程序
- STM32F103C8T6引脚图
评论
共有 条评论