```c // 完整示例代码 #include "stm32g4xx.h" void CORDIC_Init(void) { RCC->AHB2ENR |= RCC_AHB2ENR_CORDICEN; CORDIC->CSR = CORDIC_CSR_FUNC_SIN | CORDIC_CSR_NARGS_2 | CORDIC_CSR_NRES_2 | CORDIC_CSR_PRECISION_15 | CORDIC_CSR_ARGSIZE_16 | CORDIC_CSR_RESSIZE_16; } uint32_t CORDIC_Calc(int16_t angle_q15) { while (CORDIC->CSR & CORDIC_CSR_RDY); CORDIC->WDATA = (uint32_t)angle_q15 << 16; while ((CORDIC->CSR & CORDIC_CSR_RRDY) == 0); return CORDIC->RDATA; } ```