STM32:I2S驱动WM8978

最近项目中使用STM32F4驱动音频IC:WM8978。

WM8978为DAC+ADC芯片,本身并不具备编解码的功能,一方面,可通过I2S接口接收PCM数据,转为模拟信号输出,此为DAC过程,即放音;一方面,可接收模拟信号转为数字信号,通过I2S接口传输给MCU,此为ADC过程,即录音。WM8978还使用I2C接口配置其工作参数,比如音量,EQ,3D环绕等。WM8978本身可直连1W/8欧的小喇叭。

因为使用过程中掉过坑,记录一下容易出错的地方。下面只论及I2S而没有涉及I2C。

1.GPIO配置

我使用的是I2S3,对着硬件工程师给的原理图,再使用STM32CubeMX对照各个管脚看看是否有此映射。不得不说,新版的STM32CubeMX使用起来有些不顺。我只喜欢使用STM32CubeMX查看资源,却不喜欢这个软件的代码,架构有些不合我意。

我使用的还是传统的库,版本为V1.4.0。

    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA |
        RCC_AHB1Periph_GPIOB | 
        RCC_AHB1Periph_GPIOC, ENABLE);            //使能外设GPIOB,GPIOC时钟

    //PB3/4/5 复用功能输出
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4| GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
    GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化

    //PC7复用功能输出
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
    GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化
    //PA15复用功能输出
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15
  • 21
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
您可以使用以下资源来驱动WM8978芯片的I2S接口: 1. 了解WM8978芯片的功能和配置参数,以便正确配置它的工作模式。您可以参考中的信息来了解WM8978的基本介绍和配置。 2. 学习有关I2S传输PCM音频数据的知识,以便正确配置WM8978I2S接口。您可以参考中的文章来了解I2S传输的原理和配置方法。 3. 参考中的示例代码,了解如何在STM32上实现I2S接口与WM8978芯片之间的通信和数据传输。 4. 如果您需要更详细的资料和示例代码,您可以参考中的资源下载。 总结起来,要驱动WM8978I2S接口,您需要了解WM8978芯片的功能和配置参数,学习I2S传输PCM音频数据的知识,并参考示例代码来实现I2S接口与WM8978芯片之间的通信和数据传输。以上引用的资源可以帮助您更好地理解和实现这些步骤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [I2S 总线学习:I2S驱动WM8978](https://blog.csdn.net/Open_The_World/article/details/121264452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Audio】基于STM32 I2S移植WM8978 Audio Codec驱动](https://blog.csdn.net/ZHONGCAI0901/article/details/116323920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值