硬件介绍
nicla 开发板上板载了一个麦克风外设,ST MP34DT06J 数字 MEMS 麦克风,下面来尝试驱动一下此模块。
原理图如下,引脚pe-7.

物理布局如下

代码测试
关于nicla的板卡配置文件路径:C:/Users/**.platformio/packages/framework-arduino-mbed/variants/NICLA_VISION
代码如下
#include <Arduino.h>
#include <PDM.h>
// put function declarations here:
#define ADC_PIN PE_7
const float VREF = 1.0;
short sampleBuffer[512];
volatile int samplesRead = 0;
void onPDMdata();
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
PDM.onReceive(onPDMdata);
if (!PDM.begin(1, 16000)) {
Serial.println("PDM 初始化失败!");
while (1);
}
Serial.println("PDM 就绪");
}
void loop() {
// put your main code here, to run repeatedly:
delay(100);
//Serial.print("cdcdcdcdcd:"); Serial.println(samplesRead);
if (samplesRead) {
Serial.println(samplesRead);
for (int i = 0; i < samplesRead; i++) {
//float voltage = ; // 假设16位音频数据
Serial.println(sampleBuffer[i]);
}
samplesRead = 0;
}
}
void onPDMdata() {
int bytesAvailable = PDM.available();
int bytesRead = PDM.read(sampleBuffer, bytesAvailable);
samplesRead = bytesRead / 2;
// Serial.print("读取到的样本数: "); Serial.println(samplesRead);
}
// put function definitions here:串口波形工具显示效果如下
我要赚赏金
