我有用于测试的
STM32H745I-DISCO 板。
我想实现一件简单的事情:在
电路板的扬声器输出上播放 1KHz 正弦波。
当我研究我在文档中发现的主题时:
"两个外部扬声器可以通过 JP5 连接到 WM8994ECS/R,用于右
左扬声器的扬声器和 JP2"
好的。
然后,可以通过SAI/I2S访问WM8994芯片。
我看过
https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects/STM32H745I-DISCO/Examples/SAI/SAI_AudioPlayback
我不知道如何运行它。该示例需要我没有且不熟悉的 IDE。但是,查看源代码,我看到它使用 PDM2PCM 中间件。
我只是试图将它添加到我的 STM32CubeIDE 项目中。当然,CubeIDE 未能生成配置转储 mx.scratch 文件。
查看我发现我需要添加以下包含路径的文件:
- ../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc
- ../../../CM7/PDM2PCM/应用程序
以及指向 CM7PDM2PCMApp and MiddlewaresSTSTM32_Audio 目录的链接。
当我现在尝试构建项目时,出现“pdm2pcm.c:47: undefined reference to `PDM_Filter_Init'”错误。
该函数由正确包含的 pdm2pcm_glo.h 文件声明。
任何地方都没有带有定义的“.c”文件。
但是,有一个文件“libPDMFilter_CM7_GCC_wc32.a”。该文件似乎是一个二进制文件,我猜它是包含缺失函数的库的编译版本。
如果我猜对了,我需要以某种方式告诉 IDE 使用该文件。我不知道怎么办。
该文件出现在项目树中。
我尝试使用 MCU G++ 链接器/库设置来添加文件,但是当我将文件名放在那里时 - IDE 抛出另一个错误,它找不到文件。我试图将文件的路径添加到库搜索路径部分。没有帮助。我将完整的绝对路径放入文件 - 结果相同 - 我收到无法找到文件的错误。
我正在寻找任何帮助使这个中间件在我的项目中工作,还有关于如何通过发现板扬声器输出播放任何东西的任何信息。
我在这里遇到 2 种问题:STM32CubeIDE 无法正常工作(这可能是一个错误,这超出了我修复或解决方法的专业水平)并且缺乏有关其工作一般情况的信息/文档,如何才能我使用 ST 提供的固件来运行一个简单的测试,在扬声器中发出蜂鸣声。第一个问题解决后,我可以尝试从示例中复制代码以获得任何输出。包含 PDM2PCM 中间件后,我的项目有必要的包含文件,至少可以看到示例中使用的类型。问题是由于缺少我描述的功能,我无法构建项目。