CORDIC 协处理器
功能介绍
CORDIC (坐标旋转数字计算机) 是 STM32G4 内置的硬件数学加速器,采用迭代算法通过移位和加法运算实现三角函数、双曲函数、对数等复杂数学计算。硬件由移位寄存器、加法器和查找表组成,无需乘法器即可完成运算。
CORDIC 主要用于:电机控制中的 Park/Clarke 变换 (sin/cos)、功率因数计算 (atan)、信号处理中的幅值计算 (sqrt)、PLL 环路滤波等实时计算场景。相比软件查表或泰勒展开,CORDIC 硬件加速不占用 CPU 且计算时间固定。
支持的函数
Sin / Cos
三角函数计算
Atan / Atan2
反正切函数
Sinh / Cosh
双曲函数
Sqrt
平方根计算
数据格式
Q1.31 定点数格式
- 32位有符号定点数
- 1位符号位,31位小数位
- 表示范围:-1 到 +1
- 角度范围:-PI 到 +PI
HAL 库使用
uint32_t angle_q31 = degrees_to_q31(30);
// 计算 sin/cos
int32_t result[2];
HAL_CORDIC_Calculate(&hcordic,
&angle_q31, result, 1, 1);
与 DSP 库对比
CORDIC:硬件加速,计算时间固定,不占用 CPU
arm_sin_f32:软件计算,占用 CPU,但精度更高
arm_sin_f32:软件计算,占用 CPU,但精度更高