CORDIC 协处理器

功能介绍

CORDIC (坐标旋转数字计算机) 是 STM32G4 内置的硬件数学加速器,采用迭代算法通过移位和加法运算实现三角函数、双曲函数、对数等复杂数学计算。硬件由移位寄存器、加法器和查找表组成,无需乘法器即可完成运算。

CORDIC 主要用于:电机控制中的 Park/Clarke 变换 (sin/cos)、功率因数计算 (atan)、信号处理中的幅值计算 (sqrt)、PLL 环路滤波等实时计算场景。相比软件查表或泰勒展开,CORDIC 硬件加速不占用 CPU 且计算时间固定。

支持的函数

图片

Sin / Cos

三角函数计算

Atan / Atan2

反正切函数

Sinh / Cosh

双曲函数

Sqrt

平方根计算

数据格式

Q1.31 定点数格式

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,但精度更高