论坛首页
任务活动
问答
论坛专题
登录
注册
个百zz分点个
+ 关注
粉丝
0
|
主题
53
|
回帖
679
加好友
私信
帖子
主题
回复
评论
使用STM32的I2S协议读取麦克风INMP441
2024-8-29 12:38
ST MCU
29
6381
可在图中看到波形随着外界声音而波动,声音越响幅值越大,这说明采集到的数据是正常的。 至此实验完成。本 ...
在串口绘图器中查看音频波形 使用串口绘图工具SerialPlot查看声音波形,SerialPlot相当于一个带波形绘制功 ...
麦克风发送的数值是24位二进制补码的形式,二进制补码也是单片机存储有符号整型的方式,因此可以将采样值视 ...
在这个DMA数据获取的阶段非常容易出错,最终的数据格式和在Cube中设置的DMA Data With、main.c中DMA缓冲数 ...
可以观察出,dma[0]左移8位 + dma[1]右移8位,就得到了24位采样值。例如将0000fff5 00007700合并为0xfff577 ...
根据以上说明,最后一个参数size的单位是由数据帧的长度决定的。前面在Cube中设置的数据格式为24 Bits Data ...
由于前面将DMA Mode设置为了Circular,因此只需要调用一次该函数,就能开启DMA的连续存取。该函数的原文注 ...
主函数中,仅需在while循环前加了一个函数HAL_I2S_Receive_DMA(),以开启DMA传输: HAL_I2S_Receive_DMA ...
在main函数前,添加I2S接收回调函数。在回调函数之前定义了全局变量cb_cnt,用来计算回调函数被执行的次数 ...
添加全局变量,数组dma[]是一个缓冲区,芯片将硬件I2S读取到的数据通过DMA传送到这个数组,无须主程序的干 ...
以下是详细介绍: 加入stdio.h文件,是为了避免printf函数出现警告。仅添加这一行代码不能实现printf串口输 ...
编写代码 打开main.c,自己添加的代码都要放在Cube注释指定的位置,否则再次用Cube生成代码时会被覆盖。先 ...
物理连线:
如上图,建议给SD线接一个10k的下拉电阻(模块本身是不下拉的)。这是因为,在每个24bit数据传输完成后,麦 ...
本次案例不需双声道,只接一个麦克风,按照下图接线:
电路连接 在Cube上查看STM32的引脚分配如下:
在Cube中设置完成后,点击生成代码,然后在Keil中打开Project。 可以看到在Keil中,出现了i2s的库文件stm3 ...
上图中,8kHz频率是最低选项,这是为了方便测试,可以调通后再提高。添加DMA以提高数据存取速度,DMA Mode ...
使用Cube设置STM32的I2S通信 以上是对I2S通信原理的解释,下面开始创建STM32程序。打开Cube,按照下图设置 ...
......
前一页
1
2
3
4
5
6
7
后一页
2
3
近期访客