前段时间沁恒微电子推出了CH32V003系列单片机,采用的是Risc-v架构,价格做的比8位单片机还便宜,尝试着学习了一下,用起来还不错,可以满足一些简单设计的需求。
最近想将一款使用QMI8658陀螺仪的板子主控换成CH32V003F4p6,就直接移植了一下,出现了不少报错,最匪夷所思的是这个:
undefined reference to `atan2f'
undefined reference to `asinf'
提示这两个函数未定义
roll = atan2f(2 * q2*q3 + 2 * q0*q1, -2 * q1*q1 - 2 * q2*q2 + 1)*57.3f;
pitch = asinf(2 * q1*q3 - 2 * q0*q2)*57.3f;
yaw = -atan2f(2 * q1*q2 + 2 * q0*q3, -2 * q2*q2 - 2 * q3*q3 + 1)*57.3f;
这两个函数位于math.h,可是已经包含了这个头文件了,右键打开声明也可以跳转,但是提示未声明,根据Linux编程的经验,推测是没有添加链接库,以下是解决方法:
- 1.点击项目->属性
-
编译成功