資源簡介
stm32F407從flash上播放mp3 flash是W25Q128,代碼可用,有疑問可以一起交流,留言必回,互相學(xué)習(xí)

代碼片段和文件信息
#include?“audioplay.h“
#include?“ff.h“
#include?“malloc.h“
#include?“usart.h“
#include?“wm8978.h“
#include?“i2s.h“
#include?“l(fā)ed.h“
#include?“l(fā)cd.h“
#include?“delay.h“
#include?“key.h“
#include?“exfuns.h“??
#include?“text.h“
#include?“string.h“??
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
//ALIENTEK?STM32F407開發(fā)板
//音樂播放器?應(yīng)用代碼 ???
//正點(diǎn)原子@ALIENTEK
//技術(shù)論壇:www.openedv.com
//創(chuàng)建日期:2014/5/24
//版本:V1.0
//版權(quán)所有,盜版必究。
//Copyright(C)?廣州市星翼電子科技有限公司?2014-2024
//All?rights?reserved ??
//////////////////////////////////////////////////////////////////////////////////?
?
//音樂播放控制器
__audiodev?audiodev; ??
?
//開始音頻播放
void?audio_start(void)
{
audiodev.status=3<<0;//開始播放+非暫停
I2S_Play_Start();
}?
//關(guān)閉音頻播放
void?audio_stop(void)
{
audiodev.status=0;
I2S_Play_Stop();
}??
//得到path路徑下目標(biāo)文件的總個(gè)數(shù)
//path:路徑 ????
//返回值:總有效文件數(shù)
u16?audio_get_tnum(u8?*path)
{ ??
u8?res;
u16?rval=0;
? DIR?tdir; ? //臨時(shí)目錄
FILINFO?tfileinfo; //臨時(shí)文件信息
u8?*fn;? ? ??? ?????
????res=f_opendir(&tdir(const?TCHAR*)path);?//打開目錄
?? tfileinfo.lfsize=_MAX_LFN*2+1; //長文件名最大長度
tfileinfo.lfname=mymalloc(SRAMINtfileinfo.lfsize); //為長文件緩存區(qū)分配內(nèi)存
if(res==FR_OK&&tfileinfo.lfname!=NULL)
{
while(1)//查詢總的有效文件數(shù)
{
????????res=f_readdir(&tdir&tfileinfo);??????? //讀取目錄下的一個(gè)文件
????????if(res!=FR_OK||tfileinfo.fname[0]==0)break; //錯(cuò)誤了/到末尾了退出 ??
????? fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname); ?
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位看看是不是音樂文件
{
rval++;//有效文件數(shù)增加1
} ????
}??
}?
myfree(SRAMINtfileinfo.lfname);
return?rval;
}
//顯示曲目索引
//index:當(dāng)前索引
//total:總文件數(shù)
void?audio_index_show(u16?indexu16?total)
{
//顯示當(dāng)前曲目的索引及總曲目數(shù)
LCD_ShowxNum(60+0230index3160X80); //索引
LCD_ShowChar(60+24230‘/‘160);
LCD_ShowxNum(60+32230total3160X80);? //總曲目 ?? ??
}
?
//顯示播放時(shí)間比特率?信息??
//totsec;音頻文件總時(shí)間長度
//cursec:當(dāng)前播放時(shí)間
//bitrate:比特率(位速)
void?audio_msg_show(u32?totsecu32?cursecu32?bitrate)
{
static?u16?playtime=0XFFFF;//播放時(shí)間標(biāo)記 ??????
if(playtime!=cursec) //需要更新顯示時(shí)間
{
playtime=cursec;
//顯示播放時(shí)間 ?
LCD_ShowxNum(60210playtime/602160X80); //分鐘
LCD_ShowChar(60+16210‘:‘160);
LCD_ShowxNum(60+24210playtime%602160X80); //秒鐘
? LCD_ShowChar(60+40210‘/‘160);? ???? ?
//顯示總時(shí)間???? ???
? LCD_ShowxNum(60+48210totsec/602160X80); //分鐘
LCD_ShowChar(60+64210‘:‘160);
LCD_ShowxNum(60+72210totsec%602160X80); //秒鐘 ?? ????
//顯示位率 ???
??? LCD_ShowxNum(60+110210bitrate/10004160X80);//顯示位率 ?
LCD_ShowString(60+110+322102001616“Kbps“); ?
}? ?
}
//播放音樂
void?audio_play(void)
{
u8?res;
? DIR?wavdir; ? //目錄
FILINFO?wavfileinfo;//文件信息
u8?*fn;??? //長文件名
u8?*pname; //帶路徑的文件名
u16?totwavnum;? //音樂文件總數(shù)
u16?curindex; //圖片當(dāng)前索引
u8?key; //鍵值 ??
? u16?temp;
u16?*wavindextbl; //音樂索引表
WM8978
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\
?????目錄???????????0??2018-11-07?22:01??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\APP\
?????文件????????6704??2018-11-07?22:01??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\APP\audioplay.c
?????文件????????1361??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\APP\audioplay.h
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\AUDIOCODEC\
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\AUDIOCODEC\wav\
?????文件????????7567??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\AUDIOCODEC\wav\wavplay.c
?????文件????????3091??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\AUDIOCODEC\wav\wavplay.h
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\
?????文件??????109142??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\core_cm4.h
?????文件???????22735??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\core_cm4_simd.h
?????文件???????17146??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\core_cmFunc.h
?????文件???????20513??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\core_cmInstr.h
?????文件???????29605??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\CORE\startup_stm32f40_41xxx.s
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\
?????文件????????3248??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\css_e.css
?????文件????????3661??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\css_j.css
?????目錄???????????0??2018-11-07?22:18??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\en\
?????目錄???????????0??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\
?????文件????????1063??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\app1.c
?????文件????????1597??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\app2.c
?????文件????????3811??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\app3.c
?????文件???????10365??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\app4.c
?????文件????????1414??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f1.png
?????文件????????1458??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f2.png
?????文件????????1039??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f3.png
?????文件????????2335??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f4.png
?????文件????????2479??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f5.png
?????文件????????1436??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f6.png
?????文件???????11388??2016-04-15?21:59??實(shí)驗(yàn)43?音樂播放器實(shí)驗(yàn)\FATFS\doc\img\f7.png
............此處省略308個(gè)文件信息
- 上一篇:Zemax Manual
- 下一篇:des源碼
評論
共有 條評論