5971|8

5979

帖子

8

TA的资源

版主

楼主
 

【TI原创】基于LM3S8962的网络收音机(四) --- VS1053(2) [复制链接]

测试一下使用VS1053播放MP3的效果

 

1.  1.   使用自带的SD_Card例程,把MP3文件写在sd卡上

2.2.  vs1053驱动

3.3.   写相关的应用程序

 

系统的理解效果图如下:

 

 

测试的效果还是不错的,只要不连错线,美妙的音乐你是可以听到的,到这里网络收音机底层的硬件基本上就这样了,网络和VS1053都可以正常工作,下一步的工作重点是网络!

 

代码流程:

 

主程序流程

  1.  

  2. Int main(void)                            /*power_on()  spi速率3Mbps    */

  3. {

  4.     int nStatus;

  5.          USHORT i,k,temp;

  6.     FRESULT fresult;

  7.        /////////////////////////////////

  8.          FIL fsrc, fdst;      // file objects

  9.     UCHAR buffer[512]={0};

  10.     FRESULT res;         // FatFs function common result code

  11.     UINT br, bw,file_size=881664;;         // File R/W count

  12.    

  13.     // Set the system clock to run at 8 MHz from the main oscillator.

  14.     //

  15.     SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL |

  16.                    SYSCTL_XTAL_8MHZ | SYSCTL_OSC_MAIN);

  17.  

  18.     //

  19.     // Enable the peripherals used by this example.

  20.     //

  21.     SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

  22.     SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

  23.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

  24.  

  25.     //

  26.     // Configure SysTick for a 100Hz interrupt.  The FatFs driver

  27.     // wants a 10 ms tick.

  28.     //

  29.     SysTickPeriodSet(SysCtlClockGet() / 100);

  30.     SysTickEnable();

  31.     SysTickIntEnable();

  32.  

  33.        /*VS1053初始化  */

  34.  

  35.    vs1053_io_init();

  36.    vs1053_softreset();

  37.  

  38.     //

  39.     // Enable Interrupts

  40.     //

  41.     IntMasterEnable();

  42.  

  43.     //

  44.     // Set GPIO A0 and A1 as UART.

  45.     //

  46.     GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

  47.  

  48.     //

  49.     // Initialize the UART as a console for text I/O.

  50.     //

  51.     UARTStdioInit(0);

  52.  

  53.     //

  54.     // Print hello message to user.

  55.     //

  56.     UARTprintf("\n\nSD Card Example Program\n");

  57.     UARTprintf("Type \'help\' for help.\n");

  58.  

  59.     //

  60.     // Mount the file system, using logical disk 0.

  61.     //

  62.     fresult = f_mount(0, &g_sFatFs);

  63.     if(fresult != FR_OK)

  64.     {

  65.         UARTprintf("f_mount error: %s\n", StringFromFresult(fresult));

  66.         return(1);

  67.     }

  68.         

  69.          while(1)

  70.          {

  71.                  play2("test3.wma"); //播放MP3等音频文件

  72.          }

  73. }

复制代码

 

播放函数:

  1. void play2(char *wavFile)

  2. {

  3.   UINT  num_size;

  4.   USHORT i,endFillByte;

  5.   USHORT k;

  6.   FIL file;

  7.   FRESULT res;

  8.   UCHAR Buffer[32]={0};

  9.   UINT br;

  10.  

  11.   disk_initialize (0);

  12.   res = f_open(&file, (const char *)wavFile, FA_OPEN_EXISTING|FA_READ);

  13.          if(res)

  14.          {

  15.               UARTprintf("Openning wav_file failed!\n");

  16.               while(1);

  17.          }

  18.  

  19.               else

  20.               {

  21.                 UARTprintf("Openning wav_file succeed!\n");

  22.               }

  23.  

  24.  

  25.   if (res == FR_OK)

  26.     {

  27.  

  28.          UARTprintf("Openning wav_file succeed,and playing the music!\n");

  29.           num_size = file.fsize;

  30.          

  31.  

  32.            while(num_size>31)

  33.                 {

  34.                    if(f_read(&file, Buffer, 32, (WORD *)&br)==0)

  35.                      {

  36.  

  37.                             while(VS_DREQ_READ()==0);

  38.                                             VS_DCn_LOW();

  39.                                             VS_CSn_HIGH();

  40.                            for(k=0;k<br;k++)

  41.                                 {   

  42.                                           _ssi_readwrite(Buffer[k]);

  43.                                      

  44.  

  45.                               }

  46.                                         VS_DCn_HIGH();

  47.                                            VS_CSn_LOW();

  48.                             }

  49.                       num_size = num_size - 32;

  50.                  }

  51.                  if(num_size)

  52.                    {       

  53.                           while(VS_DREQ_READ()==0);

  54.                                             VS_DCn_LOW();

  55.                                             VS_CSn_HIGH();

  56.                            for(k=0;k<num_size;k++)

  57.                                 {   

  58.                                           _ssi_readwrite(0);

  59.                                      

  60.  

  61.                               }

  62.                                         VS_DCn_HIGH();

  63.                                         VS_CSn_LOW();

  64.                       }

  65.  

  66.  

  67.  

  68.     }    

  69.  

  70.  

  71.       f_close(&file);

  72.       vs1053_io_init();         

  73.       vs1053_softreset();

  74.       disk_initialize (0);

  75.  

  76. }

复制代码

 

代码下载:

 

SD_VS1053.rar (470.5 KB, 下载次数: 122)

最新回复

经典就是经典啊,真心不错啊   详情 回复 发表于 2018-12-24 09:07
 
点赞 关注(1)
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰

回复
举报

2641

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
支持一下,不过1053网上的驱动有问题,实际使用不稳定,DREQ检查不宜太频繁
 
 

回复

5979

帖子

8

TA的资源

版主

板凳
 

谢谢提醒  多多指导啊 哈哈

 

目前已经能够网络播放mp3了,继续跟进

[ 本帖最后由 chenzhufly 于 2011-10-12 13:23 编辑 ]
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

4
 

回复 板凳 chenzhufly 的帖子

网络下载播放还是网络实时播放?下载播放不难,实时播放就会出现我说的问题了,那个比较难
 
 
 

回复

5979

帖子

8

TA的资源

版主

5
 
实时的和下载的都搞好了 等我整理整理

搞的仓促 不够细致 肯定还有好多问题

点评

能把最新的程序分享一下吗/  详情 回复 发表于 2018-12-23 16:40
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

6
 

回复 5楼 chenzhufly 的帖子

非常不错,这个绝对值得好好学习一下。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
大大請教一下,把.wav取代成.mp3竟可以撥放mp3了嗎?
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

8
 
chenzhufly 发表于 2011-10-12 13:29
实时的和下载的都搞好了 等我整理整理

搞的仓促 不够细致 肯定还有好多问题

能把最新的程序分享一下吗/
 
 
 

回复

2618

帖子

0

TA的资源

纯净的硅(高级)

9
 
经典就是经典啊,真心不错啊
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表