STM32F103 MAX98357 PCM5102 音乐播放器

MAX98357、PCM5102等I2S声卡模块比VS1053模块便宜很多,声音质量也很好,只是这些I2S声卡模块的卖家没有提供基于STM32F103的例程,卖STM32F103开发的也没有提供I2S驱动例程。本DIY完美的演示了如何使用STM32F103的I2S接口来驱动MAX98357、PCM5102等声卡模块,并基于声卡模块实现了音乐播放器与游戏机,效果很好。

I2S声卡模块与音乐播放器效果如下图:
在这里插入图片描述I2S驱动代码展示:

/** 
 ** @brief 配置I2S Controller的相关属性
 ** @param I2S_Standard  --I2S_Standard_Phillips, I2S_Standard_MSB...
 **        I2S_DataFormat--I2S_DataFormat_16b, I2S_DataFormat_16bextended...
 **        I2S_MCLKOutput--I2S_MCLKOutput_Enable, I2S_MCLKOutput_Disable
 **                        (WM8978需要MCLK, MAX98357不需要MCLK, PCM5102可选)
 **        I2S_AudioFreq --8000, 11025, 16000, ... , 44100, ... , 192000
 **/
void i2s_controller_cfg(uint16_t I2S_Standard, uint16_t I2S_DataFormat, 
uint16_t I2S_MCLKOutput, uint32_t I2S_AudioFreq)
{
	I2S_InitTypeDef  I2S_InitStructure;	

	SPI_I2S_DeInit(SPI3);

	//I2S3 Controller Config
	I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
	I2S_InitStructure.I2S_Standard = I2S_Standard;
	I2S_InitStructure.I2S_DataFormat = I2S_DataFormat;
	I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput;
	I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq;
	I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
	I2S_Init(SPI3, &I2S_InitStructure);

	//使能I2S3 Controller
	I2S_Cmd(SPI3, ENABLE);
}

详细代码请查看keil工程源码,程序全裸机实现,适合各种水平的人,同时又有一定的技术含量,在STM32音频开发上肯定会对你有所启发。

STM32开发板与I2S模块的连接
(1)如果使用的是MAX98357模块,按如下方式连接:
开发板 MAX98357模块
PB3 ---- BCLK
PB5 ---- DIN
PA15 ---- LRC
GAIN(悬空)
SD(悬空)
GND ---- GND
3.3V ---- Vin(3.3V或5V供电均可,推荐使用5V)

MAX98357模块的输出端直接接小喇叭即可。

(2)如果使用的是PCM5102模块,按如下方式连接:
开发板 PCM5102模块
GND ---- SCK(可以短接SCK丝印附近预留的焊盘来代替此连接;若没有短接,则此连接必不可少)
PB3 ---- BCK
PB5 ---- DIN
PA15 ---- LCK
GND ---- GND
3.3V ---- Vin(3.3V或5V供电均可,推荐使用5V)

PCM5102模块的耳机座直接插耳机或音箱即可听到声音。

下载相关资源即可在你的STM32F103开发板上体验效果,资源如下:
STM32F103驱动MAX98357与PCM5102示例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值