資源簡介
STM32的音樂播放器程序,親測可用。內有詳細的注釋和文檔。很好的學習資料。

代碼片段和文件信息
#include?“mp3player.h“
#include?“vs10xx.h“ ?
#include?“delay.h“
#include?“led.h“
#include?“key.h“
#include?“lcd.h“ ?
#include?“malloc.h“
#include?“text.h“
#include?“string.h“
#include?“exfuns.h“
#include?“fattester.h“ ?
#include?“ff.h“???
#include?“flac.h“
#include?“usart.h“
////////////////////////////////////////////////////////////////////////////////// ?
//MP3播放驅動?代碼 ???
//修改日期:2012/9/20
//版本:V1.0
//All?rights?reserved ?? ???? ??
//////////////////////////////////////////////////////////////////////////////////
//顯示曲目索引
//index:當前索引
//total:總文件數
void?mp3_index_show(u16?indexu16?total)
{
//顯示當前曲目的索引及總曲目數
LCD_ShowxNum(60+0230index3160X80); //索引
LCD_ShowChar(60+24230‘/‘160);
LCD_ShowxNum(60+32230total3160X80);? //總曲目 ?? ??
}
//顯示當前音量
void?mp3_vol_show(u8?vol)
{ ????
LCD_ShowString(60+1102302001616“VOL:“); ?? ??
LCD_ShowxNum(60+142230vol2160X80);? //顯示音量 ?
}
u16?f_kbps=0;//歌曲文件位率
//顯示播放時間比特率?信息?
//lenth:歌曲總長度
void?mp3_msg_show(u32?lenth)
{
static?u16?playtime=0;//播放時間標記 ?????
? u16?time=0;//?時間變量
u16?temp=0; ??
if(f_kbps==0xffff)//未更新過
{
playtime=0;
f_kbps=VS_Get_HeadInfo(); ???//獲得比特率
} ? ?
time=VS_Get_DecodeTime();?//得到解碼時間
if(playtime==0)playtime=time;
else?if((time!=playtime)&&(time!=0))//1s時間到更新顯示數據
{
playtime=time;//更新時間? ? ????
temp=VS_Get_HeadInfo();?//獲得比特率 ??? ?
if(temp!=f_kbps)
{
f_kbps=temp;//更新KBPS ?? ?????
} ?
//顯示播放時間 ?
LCD_ShowxNum(60210time/602160X80); //分鐘
LCD_ShowChar(60+16210‘:‘160);
LCD_ShowxNum(60+24210time%602160X80); //秒鐘
? LCD_ShowChar(60+40210‘/‘160);? ???? ?
//顯示總時間
if(f_kbps)time=(lenth/f_kbps)/125;//得到秒鐘數???(文件長度(字節)/(1000/8)/比特率=持續秒鐘數???? ??
else?time=0;//非法位率 ??
? LCD_ShowxNum(60+48210time/602160X80); //分鐘
LCD_ShowChar(60+64210‘:‘160);
LCD_ShowxNum(60+72210time%602160X80); //秒鐘 ?? ????
//顯示位率 ???
??? LCD_ShowxNum(60+110210f_kbps3160X80);? //顯示位率 ?
LCD_ShowString(60+1342102001616“Kbps“); ?? ??
LED0=!LED0; //DS0翻轉
}??? ?
} ?? ?
//得到path路徑下目標文件的總個數
//path:路徑 ????
//返回值:總有效文件數
u16?mp3_get_tnum(u8?*path)
{ ??
u8?res;
u16?rval=0;
? DIR?tdir; ? //臨時目錄
FILINFO?tfileinfo; //臨時文件信息
u8?*fn;? ? ??? ?????
????res=f_opendir(&tdir(const?TCHAR*)path);?//打開目錄
?? tfileinfo.lfsize=_MAX_LFN*2+1; //長文件名最大長度
tfileinfo.lfname=mymalloc(SRAMINtfileinfo.lfsize); //為長文件緩存區分配內存
if(res==FR_OK&&tfileinfo.lfname!=NULL)
{
while(1)//查詢總的有效文件數
{
????????res=f_readdir(&tdir&tfileinfo);??????? //讀取目錄下的一個文件
????????if(res!=FR_OK||tfileinfo.fname[0]==0)break; //錯誤了/到末尾了退出 ??
????? fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname); ?
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位看看是不是音樂文件
{
rval++;//有效文件數增加1
} ????
}??
}?
myfree(SRAMINtfileinfo.lfname);
return?rval;
}
//播放音樂
void?mp
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8787??2017-11-25?21:10??實驗44?音樂播放器實驗\APP\mp3pla
?????文件????????559??2017-11-25?21:10??實驗44?音樂播放器實驗\APP\mp3pla
?????文件???????2815??2012-07-25?00:19??實驗44?音樂播放器實驗\FATFS\doc\css_e.css
?????文件???????3177??2012-07-25?00:19??實驗44?音樂播放器實驗\FATFS\doc\css_j.css
?????文件???????1414??2011-09-02?22:10??實驗44?音樂播放器實驗\FATFS\doc\img\f1.png
?????文件???????1458??2007-02-10?03:12??實驗44?音樂播放器實驗\FATFS\doc\img\f2.png
?????文件???????1039??2007-02-10?03:12??實驗44?音樂播放器實驗\FATFS\doc\img\f3.png
?????文件???????2335??2008-01-05?20:27??實驗44?音樂播放器實驗\FATFS\doc\img\f4.png
?????文件???????2479??2008-01-05?20:27??實驗44?音樂播放器實驗\FATFS\doc\img\f5.png
?????文件???????1436??2010-08-21?10:13??實驗44?音樂播放器實驗\FATFS\doc\img\f6.png
?????文件???????2401??2009-03-20?21:57??實驗44?音樂播放器實驗\FATFS\doc\img\la
?????文件???????2379??2009-06-13?21:48??實驗44?音樂播放器實驗\FATFS\doc\img\la
?????文件???????5209??2012-07-27?01:26??實驗44?音樂播放器實驗\FATFS\doc\img\modules.png
?????文件??????19068??2008-10-18?19:31??實驗44?音樂播放器實驗\FATFS\doc\img\rwtest.png
?????文件???????8153??2010-09-13?10:55??實驗44?音樂播放器實驗\FATFS\doc\img\rwtest2.png
?????文件???????3011??2009-06-15?00:03??實驗44?音樂播放器實驗\FATFS\doc\img\rwtest3.png
?????文件???????4185??2012-08-27?21:56??實驗44?音樂播放器實驗\FATFS\doc\updates.txt
?????文件???????3334??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\exfuns\exfuns.c
?????文件???????1218??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\exfuns\exfuns.h
?????文件???????6587??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\exfuns\fattester.c
?????文件????????935??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\exfuns\fattester.h
?????文件???????4815??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\exfuns\mycc936.c
?????文件???????6821??2012-09-04?22:50??實驗44?音樂播放器實驗\FATFS\src\00readme.txt
?????文件???????5972??2017-11-25?21:10??實驗44?音樂播放器實驗\FATFS\src\diskio.c
?????文件???????2763??2012-08-27?21:39??實驗44?音樂播放器實驗\FATFS\src\diskio.h
?????文件?????143152??2012-09-19?12:58??實驗44?音樂播放器實驗\FATFS\src\ff.c
?????文件??????12506??2012-09-19?12:58??實驗44?音樂播放器實驗\FATFS\src\ff.h
?????文件???????7463??2017-11-25?21:07??實驗44?音樂播放器實驗\FATFS\src\ffconf.h
?????文件????????856??2010-04-24?23:45??實驗44?音樂播放器實驗\FATFS\src\integer.h
?????文件?????249488??2010-05-09?23:52??實驗44?音樂播放器實驗\FATFS\src\option\cc932.c
............此處省略186個文件信息
- 上一篇:Megan軟件使用說明書
- 下一篇:基于51開發板的溫度報警鬧鐘按鍵控制
評論
共有 條評論