[其他ST产品] 如何在STM32CubeIDE中使用arm_sin_f32和arm_cfft

[复制链接]
656|10
 楼主| zhouyou99 发表于 2025-6-26 22:52 | 显示全部楼层 |阅读模式
在STM32CubeIDE中使用了arm_sin_f32和arm_cfft,
但是无论我如何改变设置,仍然存在“undefined reference”这样的bug。好像在改变设置时有错误。
是否有在STM32CubeIDE中相关指南?

公羊子丹 发表于 2025-7-31 13:39 | 显示全部楼层
你是把CMSIS-DSP库的源文件或者库文件加进项目了吗?arm_sin_f32和arm_cfft都是CMSIS-DSP里的函数,没加库肯定会报undefined reference。
周半梅 发表于 2025-7-31 13:40 | 显示全部楼层
STM32CubeIDE里,记得要在项目属性->C/C++ Build->Settings->Tool Settings->MCU GCC Linker->Libraries里添加cmsis_dsp库,还有头文件路径也要配置对。
帛灿灿 发表于 2025-7-31 13:40 | 显示全部楼层
还有一点,arm_sin_f32和arm_cfft需要用浮点运算,工程里的浮点单元(FPU)设置要打开,否则会报错或者跑不起来。
童雨竹 发表于 2025-7-31 13:42 | 显示全部楼层
推荐你用STM32CubeMX生成代码,选上CMSIS-DSP中间件,这样能自动帮你配置好相关库和路径,少走弯路。
万图 发表于 2025-7-31 13:46 | 显示全部楼层
你这个“undefined reference”通常是链接器没找到函数定义,看看有没有漏了源文件或者库没有链接进去。
Wordsworth 发表于 2025-7-31 13:48 | 显示全部楼层
arm_cfft的初始化比较讲究,注意要调用arm_cfft_init或者相关结构体先,不然使用会出错。
Bblythe 发表于 2025-7-31 13:49 | 显示全部楼层
如果是用的静态库,确认库的架构(如armv7e-m)和你的MCU一致,避免架构不匹配导致链接失败。
Pulitzer 发表于 2025-7-31 13:59 | 显示全部楼层
你用的是哪个STM32系列?不同系列,CMSIS库版本会有点差异,最好用对应的官方包。
Uriah 发表于 2025-7-31 14:00 | 显示全部楼层
我以前也是踩这个坑,最后是把CMSIS-DSP源码直接放到项目里编译,这样能避免库没链接上的麻烦。
Clyde011 发表于 2025-7-31 14:01 | 显示全部楼层
你可以查下ST的官方论坛和GitHub,CMSIS-DSP的example工程挺多,可以参考它们的配置方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部