Image
Image

个百zz分点个

+ 关注

粉丝 0     |     主题 45     |     回帖 626

在使用STM32F407开发板时,如何充分利用其硬件资源来优化系统性能和降低功耗?
2024-5-31 23:53
  • ST MCU
  • 1
  • 321
  通过上述策略,可以充分利用STM32F407的硬件资源,优化系统性能,并有效降低功耗。具体实施过程中,需要根 ...  
使用STM32的I2S协议读取麦克风INMP441
2024-6-30 18:19
  • ST MCU
  • 26
  • 73
  可在图中看到波形随着外界声音而波动,声音越响幅值越大,这说明采集到的数据是正常的。 至此实验完成。本 ...  
  在串口绘图器中查看音频波形 使用串口绘图工具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,按照下图设置 ...  
2
3
近期访客