打印
[STM32L0]

如何在 STM32CubeIDE 中实现数学库?

[复制链接]
247|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HomeKit|  楼主 | 2025-5-26 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 STM32L011 并且我想实现 atan2(x,y) 函数。
如何在 STM32CubeIDE 中实现数学库?
调用哪个库?

使用特权

评论回复
沙发
公羊子丹| | 2025-5-27 07:40 | 只看该作者
atan2() 是标准 math 库函数,直接 #include <math.h> 然后编译时链接 -lm 就可以用了。

使用特权

评论回复
板凳
周半梅| | 2025-5-27 07:41 | 只看该作者
STM32CubeIDE 默认没勾选 math 库链接,你得手动加上 -lm 到 linker settings 里。

使用特权

评论回复
地板
帛灿灿| | 2025-5-27 07:42 | 只看该作者
atan2() 是个浮点函数,记得开启对浮点的支持,不然链接的时候会出错。

使用特权

评论回复
5
童雨竹| | 2025-5-27 07:42 | 只看该作者
我之前在 L053 上用过 sqrt() 和 atan2(),性能不快,但能用,float 要特别注意资源限制。

使用特权

评论回复
6
万图| | 2025-5-27 07:43 | 只看该作者
如果你用的是 newlib-nano,某些浮点函数可能被裁剪了,可以换成完整版 newlib。

使用特权

评论回复
7
Wordsworth| | 2025-5-27 07:44 | 只看该作者
用 atan2f()(float版)效率会高一点,atan2() 是 double,L0 扛不动的容易出 hardfault。

使用特权

评论回复
8
Bblythe| | 2025-5-27 07:45 | 只看该作者
你试过在 Properties → Settings → Tool Settings → MCU GCC Linker → Miscellaneous 加上 -lm 吗?

使用特权

评论回复
9
Pulitzer| | 2025-5-27 07:45 | 只看该作者
如果用 arm_math.h 也能实现一些数**算,不过 atan2() 要自己拼,用 atan() + 判断象限。

使用特权

评论回复
10
Uriah| | 2025-5-27 07:46 | 只看该作者
STM32L011 比较轻量,建议只调用需要的数学函数,float 运算还是挺吃资源的。

使用特权

评论回复
11
Clyde011| | 2025-5-27 07:47 | 只看该作者
如果实在不行,找一个查表法实现 atan2() 也挺好,速度比浮点数学库快不少。

使用特权

评论回复
12
t60yz| | 2025-5-31 23:42 | 只看该作者
atan2(y, x) 在 <math.h> 里定义,和你写的参数顺序相反

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

21

帖子

0

粉丝