ST意法半导体
直播中

lotusp

10年用户 1069经验值
擅长:电源/新能源
私信 关注
[问答]

请问如何在STM32CubeIDE工程中使用pdm2pcm库?

我有用于测试的 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 中间件后,我的项目有必要的包含文件,至少可以看到示例中使用的类型。问题是由于缺少我描述的功能,我无法构建项目。




回帖(1)

h1654155275.5814

2022-12-1 14:51:47
添加.a文件:
在 Project > Properties > C/C++ Build > Settings > Tool Settings > MCU GCC Linker > Libraries 下添加 .a 库名称和该文件的路径。这将使链接器高兴。注意不要输入“lib”前缀和扩展名.a,例如当文件名为libmylib.a时,输入mylib
此外,在 MCU GCC Compiler > Include paths 下添加头文件的路径以使编译器满意。
您可以根据需要在项目文件夹树中保留 .a 和 .h 文件的副本,或者在单独的文件夹中保留“树外”文件。
请注意,对于不同的 MCU/CPU 体系结构和浮点等 ABI,可能存在 .a 文件。确保您获得了正确的链接库。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分