使用STM32的内部ADC对音频信号进行采样,再通过FFT形成频率和幅值对应的函数,显示在由单总线控制的8 * 10的RGB LED阵列上
- 首次更新 2017.6.23
- 使用STM32内部12位的ADC对有直流偏置电压的音频信号进行采样,采样点为1024。
- 对1024个采样点进行FFT处理,这里使用的是ST官方FFT库,输出不同频率对应的电压幅值。
- 对频率进行分组,按照指数增益分为十个组。对电压幅值进行分组,分为八组。十组频率八组电压值形成二维数组。
- 采用一根信号线控制首尾相连的8×10的WS2812 RGB LED阵列,每颗LED有24bit颜色深度,为了方便程序编写,这里只编写了全灭在内的25种不同亮度的不同颜色。
- 将二维数组显示在8×10的WS2812 RGB LED阵列上,电压越高颜色越偏R,电压越低颜色越偏G。
- 每隔大约1s进行一次电压采样、FFT、和频谱显示。
- 设置了四个按键中断进行对系统的控制,分别为亮度+、亮度-、原始波形显示和静音(功放shutdown使能)。