DSP库相对于标准的“math.h”对浮点计算做了优化和增强,运算速度更快。
关于STM32如何添加DSP库,网上有很多教程,笔者在实际操作时发现会遇到keil报error: 247的问题。针对于解决过程,在此做一个记录。
【错误原因】
error: 247:有一个同名已经被定义过了。
在这里是因为我们手动复制到工程里边的“cmsis_armcc.h”、“cmsis_compiler.h”,与“core_cm3.h”这个头文件有冲突。
【解决办法】
我们将core_cm3.h这个头文件,从工程目录下移除,或者更改一个名字。
【完整添加过程】
1.配置runtime environment
这里一定要同时勾选“DSP”和“CORE”
2.移除core_cm3.h
按照解决办法,将core_cm3.h从工程文件中删除或者重命名。
3.添加ARM_MATH_CM3宏定义
添加ARM_MATH_CM3宏定义
4.编译
添加头文件:
#include "math.h"
#include "arm_math.h"
5.测试
定义一个全局变量data,在main中使用arm_sin_f32计算30°的正弦值。
<END 文:雷打不动的晴天>
道阻且长,行则将至。
欢迎大家关注“兔子聊电路”,会不定期的分享一些遇到的电路问题和一些有趣的电路设计,更欢迎大家一起交流电路设计上的心得。同时,也会分享一些有意义的非技术类书籍。