[STM32F1] stm32f103c6t6标准库添加DSP库

[复制链接]
2159|5
 楼主| tpgf 发表于 2024-7-16 16:43 | 显示全部楼层 |阅读模式
       由于最近下班比较早,在家里闲着无聊,所以想着做一个FFT的频谱在OLED上显示,在我加DSP库的时候,遇到了一个比较棘手的问题,离谱的很,还好解决了!!!!

        当我从网上拿到这个库的包并准备加入这个DSP库的时候

284996696327c4e678.png

60726696326c729ed.png

按照步骤,开始还好,后面编译的时候,可想而知

因为我看的一个CSDN的博主的单片机是STM32F103RC的

566426696324722afa.png

然后他在Define里面加了2个定义,1个是STM32F10X_HD,另一个是ARM_MATH_CM3,然后导致我的报错(我的是STM32F103C6T6)

90871669632947d854.png
12281669632510b699.png

主要问题是我加了STM32F10X_HD,导致了

315226696322948ca8.png

..\USER\stm32f10x.h(298): error:  #67: expected a "}"    ADC1_2_IRQn                 = 18,   

/*!< ADC1 and ADC2 global Interrupt                       */

这种错误44个,嗯哼!!!眼睛瞪大一圈,找找解决方案,,,

我查询百度才发现,原来STM32F103RC的可以用STM32F10X_HD的,但是我的应该用STM32F10X_MD的;

3804666963220efe43.png

我改成了MD的之后,又来了10个报错

__STATIC_INLINE uint32_t  __get_BASEPRI(void)
D:\mdk5\ARM\PACK\ARM\CMSIS\4.2.0\CMSIS\Include\core_cmFunc.h(238): error:  #247: function "__set_BASEPRI" has already been defined
  __STATIC_INLINE void __set_BASEPRI(uint32_t basePri)
D:\mdk5\ARM\PACK\ARM\CMSIS\4.2.0\CMSIS\Include\core_cmFunc.h(251): error:  #247: function "__get_FAULTMASK" has already been defined
  __STATIC_INLINE uint32_t __get_FAULTMASK(void)

什么鬼????重定义???

40525669632125b894.png

注释掉这个//#include "arm_math.h"之后就没有报错了;如果不注释的话就会有上面的报错,最后发现原来是因为在我加的这个DSP库里面,因为加入了.h的这个路径;好的问题就在这里了。。。。

657736696320a3a2a4.png

在这个Include里面的.h文件包含了和CORE里面一致的core_cm3.h文件

4150966963200d6e68.png

所以才会有报错

70293669631f5d13a9.png

删除之后,,,,

19310669631ea61316.png

没有报错了。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_65036647/article/details/140363417

雨果喝水 发表于 2024-8-29 12:32 | 显示全部楼层
确保你使用的 DSP 库版本和 STM32 微控制器的型号匹配。例如,如果你使用的是 STM32F103C6T6,你需要确保 DSP 库支持这个型号,并且没有误用其他型号的定义。
花间一壶酒sd 发表于 2024-8-31 21:59 | 显示全部楼层
在项目中集成 DSP 库并正确使用 FFT。
花间一壶酒sd 发表于 2024-8-31 21:59 | 显示全部楼层
DSP 库中涉及到浮点运算。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2385

主题

17641

帖子

21

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