找回密码
 立即注册
楼主: ercircle

MP3音乐播放器【FatFs+SD/TF卡+I2S-DAC】@STC32G144K246,实时解码MP3

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-03-07 15:12:16
已绑定手机

102

主题

4135

回帖

9099

积分

荣誉版主

无情的代码机器

积分
9099
发表于 2025-12-10 20:58:48 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-03-06 09:14:52

84

主题

7283

回帖

1万

积分

超级版主

积分
15618
发表于 2025-12-26 18:57:18 | 显示全部楼层
文件带的《张灯结彩.mp3》 不能播放。

我按32kbit、16K采样的单声道压缩的《孟庭苇-冬季到台北来看雨.mp3》,也不能播放。
《c.mp3》和《D.mp3》可以播放。
请问不能播放的原因是什么呢?

截图202512261856093355.jpg


点评

不支持中文,改成纯字母名  详情 回复 发表于 2025-12-26 20:25
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-03-07 15:12:16
已绑定手机

102

主题

4135

回帖

9099

积分

荣誉版主

无情的代码机器

积分
9099
发表于 2025-12-26 20:25:01 | 显示全部楼层
梁*** 发表于 2025-12-26 18:57
文件带的《张灯结彩.mp3》 不能播放。

我按32kbit、16K采样的单声道压缩的《孟庭苇-冬季到台北来看雨.mp3 ...

暂不支持中文,改成纯字母名

点评

改成英文OK了、  详情 回复 发表于 2025-12-26 23:36
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-03-06 09:14:52

84

主题

7283

回帖

1万

积分

超级版主

积分
15618
发表于 2025-12-26 23:36:13 | 显示全部楼层
erci*** 发表于 2025-12-26 20:25
暂不支持中文,改成纯字母名

改成英文OK了、
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-03-06 09:14:52

84

主题

7283

回帖

1万

积分

超级版主

积分
15618
发表于 2025-12-27 14:07:05 | 显示全部楼层
原程序只播放一个声道,我增加另一个声道输出,下面的程序替换I2S.c里的中断函数即可:
unsigned int dac;
////////////////////////////////////////
// I2S中断服务程序
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void I2S_ISR(void) interrupt I2S_VECTOR
{
    //<<AICUBE_USER_I2S_ISR_CODE1_BEGIN>>
//     // 在此添加中断函数用户代码
                static u8 flag;
    if (I2S1_CheckTXEFlag())             //判断I2S发送缓冲区空中断
    {
                if(!pcm_run_flag)
                {
                        I2S1_WriteData_16B(0);
                }
                else
                {
                        if(isMp3Play)
                        {
                                flag = !flag;
                                if(flag)
                                {
                                        dac = i2s_buffer[i2s_buffer_index];
                                        I2SDRH = (u8)(dac/256), I2SDRL = (u8)(dac%256);
                                }
                                else
                                {
                                        I2SDRH = (u8)(dac/256), I2SDRL = (u8)(dac%256);
                                        if (++i2s_buffer_index >= i2s_buffer_len)
                                        {
                                                i2s_buffer_index = 0;
                                                pcm_run_flag = 0;
                                        }
                                }
                        }
                        else
                        {
                                //s16le
                                        (I2SDRH = LOBYTE(i2s_buffer[i2s_buffer_index]), I2SDRL = HIBYTE(i2s_buffer[i2s_buffer_index]));
                                //I2S_WriteData_16B(i2s_buffer[i2s_buffer_index]);
                                i2s_buffer_index++;
                                if (i2s_buffer_index >= i2s_buffer_len)
                                {
                                        i2s_buffer_index = 0;
                                        pcm_run_flag = 0;
                                }
                        }
                }
    }
}

点评

已同步修改到1L附件中  详情 回复 发表于 2025-12-27 16:09
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-03-07 15:12:16
已绑定手机

102

主题

4135

回帖

9099

积分

荣誉版主

无情的代码机器

积分
9099
发表于 2025-12-27 16:09:07 | 显示全部楼层
梁*** 发表于 2025-12-27 14:07
原程序只播放一个声道,我增加另一个声道输出,下面的程序替换I2S.c里的中断函数即可:
unsigned int dac;
...

已同步修改到1L附件中

点评

周末辛苦了!  详情 回复 发表于 2025-12-27 16:32
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-03-06 09:14:52

84

主题

7283

回帖

1万

积分

超级版主

积分
15618
发表于 2025-12-27 16:32:59 | 显示全部楼层
erci*** 发表于 2025-12-27 16:09
已同步修改到1L附件中

周末辛苦了!
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2026-03-04 08:43:12
已绑定手机

7

主题

22

回帖

294

积分

中级会员

积分
294
发表于 2025-12-30 09:10:47 | 显示全部楼层
那个song.c什么作用

点评

测试文件,可以用内部flash播放,可以看参考链接第一个原作帖子  详情 回复 发表于 2025-12-30 09:21
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-03-07 15:12:16
已绑定手机

102

主题

4135

回帖

9099

积分

荣誉版主

无情的代码机器

积分
9099
发表于 2025-12-30 09:21:57 | 显示全部楼层
骨*** 发表于 2025-12-30 09:10
那个song.c什么作用

测试文件,可以用内部flash播放,可以看参考链接第一个原作帖子
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-7 17:07 , Processed in 0.128075 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表