由于最近下班比较早,在家里闲着无聊,所以想着做一个FFT的频谱在OLED上显示,在我加DSP库的时候,遇到了一个比较棘手的问题,离谱的很,还好解决了!!!!
当我从网上拿到这个库的包并准备加入这个DSP库的时候
按照步骤,开始还好,后面编译的时候,可想而知
因为我看的一个CSDN的博主的单片机是STM32F103RC的
然后他在Define里面加了2个定义,1个是STM32F10X_HD,另一个是ARM_MATH_CM3,然后导致我的报错(我的是STM32F103C6T6)
主要问题是我加了STM32F10X_HD,导致了
..\USER\stm32f10x.h(298): error: #67: expected a "}" ADC1_2_IRQn = 18,
/*!< ADC1 and ADC2 global Interrupt */
这种错误44个,嗯哼!!!眼睛瞪大一圈,找找解决方案,,,
我查询百度才发现,原来STM32F103RC的可以用STM32F10X_HD的,但是我的应该用STM32F10X_MD的;
我改成了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)
什么鬼????重定义???
注释掉这个//#include "arm_math.h"之后就没有报错了;如果不注释的话就会有上面的报错,最后发现原来是因为在我加的这个DSP库里面,因为加入了.h的这个路径;好的问题就在这里了。。。。
在这个Include里面的.h文件包含了和CORE里面一致的core_cm3.h文件
所以才会有报错
删除之后,,,,
没有报错了。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_65036647/article/details/140363417
|