stm32生成一个50hz的正弦波表格
时间: 2024-05-11 17:19:31 浏览: 3
可以使用以下代码生成一个50Hz的正弦波表格:
```c
#include <math.h>
#define TABLE_SIZE 100 // 正弦波表格长度
#define SAMPLING_FREQ 1000 // 采样率
float sin_table[TABLE_SIZE]; // 正弦波表格
void generate_sin_table(void) {
for (int i = 0; i < TABLE_SIZE; i++) {
float angle = 2 * M_PI * i / TABLE_SIZE; // 计算角度
sin_table[i] = sin(angle); // 计算正弦值
}
}
int main(void) {
generate_sin_table(); // 生成正弦波表格
while (1) {
for (int i = 0; i < TABLE_SIZE; i++) {
float t = 1.0 / SAMPLING_FREQ; // 计算采样周期
float sin_val = sin_table[i]; // 从正弦波表格中读取正弦值
// 将正弦波表格中的正弦值输出到 DAC 或 PWM 中
// ...
}
}
return 0;
}
```
需要注意的是,生成的正弦波表格长度应该是一个固定的值,并且需要根据实际需求进行调整。同时,生成正弦波表格的代码只需要在初始化时运行一次即可,之后可以重复使用该表格。在实际应用中,需要根据具体使用情况将正弦波输出到 DAC 或 PWM 中。