完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这个只能自己调了...
|
|
|
|
自个钻研~~
|
|
|
|
城要帮助,请联系我
|
|
|
|
VS1053的应用其实非常简单,基本的步骤如下:
1. 编写好SPI总线驱动代码; 2. 编写好VS1053初始化代码; 3. 编写正弦波测试代码; 4. 内存测试代码。 完成以上几个步骤后就可以进行MP3解码了。 /************************************************************************************** * FunctionName: VS1053SineTest() * Description : 正弦波测试 * EntryParameter: freq - 测试频率 0x24,0x44等 * ReturnValue : None **************************************************************************************/ void VS1053SineTest(uint8 freq) { uint8 i; uint8 test[] = {0x53, 0xEF, 0x6E, 0x24, 0x00, 0x00, 0x00, 0x00}; // 向vs发送正弦测试命令 uint8 back[] = {0x45, 0x78, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00}; // 向vs发送退出测试命令 VS_XRESET_CLR(); // xreset = 0 VS1053_Delay(100); SSP1Send(0xFF); // 发送一个字节的无效数据,启动SPI传输 VS_CS_SET(); // cs = 1 VS_XDCS_SET(); // xdcs = 1 VS_XRESET_SET(); // xreset = 1 VS1053_Delay(100); VS1053WriteReg(VS_SCI_MODE, 0x0820); // enter vs1003 test model while (VS_DREQ_PIN() == 0); // wait for DREQ Highlevel GPIOSetValue(1, 2, 0); // xdcs = 0 test[3] = freq; // 写入频率 for (i=0; i<8; i++) { VS1053WriteData(test); // 程序执行到这里后应该能从耳机听到一个单一频率的声音 } VS_XDCS_SET(); // xdcs = 1 VS1053_Delay(100000); GPIOSetValue(1, 2, 0); // xdcs = 0 for (i=0; i<8; i++) { VS1053WriteData(back); // 退出正弦测试 } VS_XDCS_SET(); // xdcs = 1 VS1053_Delay(200); } /************************************************************************************** * FunctionName: VS1053RamTest() * Description : 内存测试,0x8000表示测试完成,0x83FF表示完好 * EntryParameter: None * ReturnValue : 完好返回0,否则返回1 **************************************************************************************/ uint8 VS1053RamTest(void) { uint16 res = 0x0000; uint8 i; uint8 test[] = {0x4D, 0xEA, 0x6D, 0x54, 0x00, 0x00, 0x00, 0x00}; // VS_XRESET_CLR(); // xreset = 0 VS1053_Delay(100); SSP1Send(0xFF); VS_CS_SET(); // cs = 1 VS_XDCS_SET(); // xdcs = 1 VS_XRESET_SET(); // xreset = 1 VS1053_Delay(100); VS1053WriteReg(VS_SCI_MODE, 0x0820); // Allow SCI tests while (VS_DREQ_PIN() == 0); // wait for DREQ Highlevel //After this sequence wait for 1100000 clock cycles. //The result can be read from the SCI register SCL_HDATA0 GPIOSetValue(1, 2, 0); // xdcs = 0 for (i=0; i<8; i++) { VS1053WriteData(test); // 写入测试代码 } VS_XDCS_SET(); // xdcs = 1 VS1053_Delay(10000); res = VS1053ReadReg(VS_SCI_HDAT0); // 如果得到的值为0x83FF,则表明完好。 return ((res == 0x83FF) ? 0: 1); // 返回测试结果 } /************************************************************************************** * FunctionName: VS1053Play() * Description : MP3播放 * EntryParameter: None * ReturnValue : None **************************************************************************************/ uint8 VS1053Play(uint8 *mp3File) { uint8 i, key = 0, pauseFlag = 0; uint16 k; FATFS fs; /*Work area (file system object) for logical drive*/ FIL file; /*file objects*/ UINT br; /*File R/W count*/ FRESULT res; /*Register a work area for logical drive 0*/ f_mount(0, &fs); /*Create file*/ res = f_open(&file, (const TCHAR *)mp3File, FA_OPEN_EXISTING|FA_READ); if (res == FR_OK) { while (1) { res = f_read(&file, MMCBuf, 512, &br); k = 0; do { if (VS_DREQ_PIN() == 1) // 判断VS是否空闲 { for (i=0; i<32; i++) { VS1053WriteData(MMCBuf[k++]); // 发送MP3数据 } } } while (k < 511); if ((res != FR_OK) || (br < 512)) // 判断数据是否读完 { break; } } } /*Close all files*/ f_close(&file); // 关闭文件,必须和f_open函数成对出现 /*Unregister a work area before discard it*/ f_mount(0, 0); return key; // 返回 } |
|
|
|
就需要一些基本的高低音配置~~能帮忙么?
|
|
|
|
音调这个东西看个人喜好的吧,比如我就喜欢重音高一点
|
|
|
|
嗯~~有一次我乱赋值~~结果出来的效果还不错
|
|
|
|
这个慢慢调到自己喜欢的就可以了,和音响也有点关系,比如我用耳机的话,把重音调到最高,也没什么问题,如果是用功放,就太高了
|
|
|
|
en ~暂时还没用到功放
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1649 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1566 浏览 1 评论
994 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
694 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1613 浏览 2 评论
1872浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
656浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
526浏览 3评论
544浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
515浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 01:09 , Processed in 0.941303 second(s), Total 63, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号