查看: 2436|回复: 2

[原创] 【赚周年币】Fireduino A6.播放TF卡中MP3文件

[复制链接]
  • TA的每日心情
    开心
    2024-3-3 21:23
  • 签到天数: 2449 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-12-29 23:23:40 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 limale 于 2017-1-17 20:21 编辑

    最近确实有点忙了,都没能好好的玩Fireduino了,晚上抽个空来测试一下播放TF卡中的MP3文件。
    Fireduino 内部集成了HIFI级高质量的音频解码器、专业的硬件MP3解码加速器、硬件低损耗音频解码加速器和丰富的外设,支持WI-FI协议,支持24bits 192k Hz 采样率、低损耗、低功耗的音频解码。
    Fireduino 支持播放在SD卡以及网络上的音频文件,解码格式支持APE/FLAC/WAV/MP3/WMA/AAC/OGG;
    Fireduino在音频解码方面非常优秀,使用Audio库中的API可以让用户更简单易用的进行音频开发。Fireduino提供了音频接口如下图:

    Earphone_jack.jpg
    我们可以接个耳机在黑色的PHONE插口上就可以听到音乐了,音质还是不错的。
    QQ截图20161222160621.jpg
    测试程序功能比较简单,只是一个初始化成功了TF卡和Audio之后就播放音乐同时在OLED屏幕上边显示文件名,然后TF里边有两个音频文件第一个播放完了之后就循环播放第二个文件。后边准备利用OLED屏幕和按钮实现播放、暂停、恢复播放、上一曲、下一曲以及音量加减等。这样完全就可以当作一个mp3播放器来用了。
    1. #include <Arduino.h>
    2. #include "Wire.h"
    3. #include "oled.h"
    4. #include "oledfont.h"
    5. #include "TF.h"
    6. #include "Audio.h"

    7. //板载led
    8. #define LED_GREEN   13
    9. #define LED_BLUE    3

    10. #define Trigger_T_measuremnet_hold_master         0xe3
    11. #define Trigger_RH_measuremnet_hold_master        0xe5
    12. extern int16_t SHT20_Read_value(uint8_t value);
    13. uint16_t SHT20_val;
    14. float SHT20_val_temp;
    15. float SHT20_val_humi;
    16. char str[15] = {};
    17. char music1[10] = {"love.MP3"};
    18. char music2[10] = {"sara.MP3"};
    19. void Sys_Init(void)
    20. {
    21.   Serial.begin(115200);
    22.   pinMode(OLED_GND, OUTPUT);
    23.   pinMode(OLED_VCC, OUTPUT);
    24.   pinMode(OLED_CLK, OUTPUT);
    25.   pinMode(OLED_DIN, OUTPUT);
    26.   pinMode(OLED_RES, OUTPUT);
    27.   pinMode(OLED_DC, OUTPUT);
    28.   pinMode(OLED_CS, OUTPUT);
    29.   digitalWrite(OLED_GND,LOW);
    30.   digitalWrite(OLED_VCC,HIGH);
    31.   
    32.   pinMode(LED_GREEN, OUTPUT);
    33.   digitalWrite(LED_GREEN,HIGH);
    34.   Wire.begin();
    35.   OLED_Init();
    36.   OLED_Clear();
    37.   if(!SD.begin())
    38.   {
    39.     Serial.println("sd init err\r\n");
    40.     while(1);
    41.   }
    42.   Audio.begin(AUDIO_SD);
    43.   if(Audio)
    44.   {
    45.     Audio.playFile("\\love.MP3");
    46.     OLED_ShowString(0, 2, music1, 16);
    47.   }
    48.   
    49. }

    50. void Main(void)
    51. {
    52.   char str1[] = {"eeboard"};
    53.   char str2[] = {"www.eeboard.com"};  
    54.   uint8_t i = 4;
    55.   
    56.   OLED_ShowCHinese(i, 0, 0);
    57.   OLED_ShowCHinese(i+16, 0, 1);
    58.   OLED_ShowString(i+32, 0, str1, 16);
    59.   OLED_ShowCHinese(i+88,0, 2);
    60.   OLED_ShowCHinese(i+104,0, 3);
    61. //  OLED_ShowString(4,2,str2,16);
    62.   while(1)
    63.   {
    64.       SHT20_val = SHT20_Read_value(Trigger_RH_measuremnet_hold_master);
    65.       SHT20_val &= ~0x0003;
    66.       SHT20_val_humi = -6.0 + 125.0 / 65536 * (float)SHT20_val;
    67.       sprintf(str, "= %5.2f RH ", SHT20_val_humi);
    68.       OLED_ShowCHinese(0, 4, 4);
    69.       OLED_ShowCHinese(16, 4, 5);
    70.       OLED_ShowString(32, 4, str, 16);
    71.       
    72.       SHT20_val = SHT20_Read_value(Trigger_T_measuremnet_hold_master);
    73.       SHT20_val &= ~0x0003;
    74.       SHT20_val_temp = -46.85 + 175.72 / 65536 * (float)SHT20_val;
    75.       sprintf(str, "= %5.2f C ", SHT20_val_temp);
    76.       OLED_ShowCHinese(0, 6, 6);
    77.       OLED_ShowCHinese(16, 6, 7);
    78.       OLED_ShowString(32, 6, str, 16);
    79.       Serial.println("loop");
    80.       delay(2000);
    81.       if(Audio.getStatus() == AudioStop)
    82.       {
    83.        Audio.playFile("\\sara.MP3");
    84.        OLED_ShowString(0, 2, music2, 16);
    85.       }   
    86.     }  
    87. }
    复制代码
    只是简单的显示了文件名,后边可以配合按钮实现一些基本的功能。
    IMG_20161229_231736.jpg
    程序源码: audio.rar (7.39 KB, 下载次数: 4)

    评分

    参与人数 1 +30 收起 理由
    loveeeboard + 30

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情

    2021-12-7 12:35
  • 签到天数: 1354 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-12-29 23:36:38 | 显示全部楼层
    好产品,下载下来,参考和学习。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-3 21:23
  • 签到天数: 2449 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2016-12-30 00:50:21 | 显示全部楼层
    jwdxu2009 发表于 2016-12-29 23:36
    好产品,下载下来,参考和学习。

    谢谢支持      
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 09:49 , Processed in 0.138852 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.