这是我第一次用到IIS,做个记录~

cubemax配置

我使用的是cubemax,这里主要记录iis的相关配置

由于我的mcu(stm32f407)只需要接收,不需要发送,所以选择master receive模式即可,协议使用飞利浦标准,数据格式和采样频率参考和mcu通信的slaver。这里我的从机是adxl317。

打开IIS的中断

加上DMA

关于时钟,我的设置如下图,I2S时钟填了50MHz。我当时不太理解这里要填多少,我随便填的。

现在想起来,有可能是I2S的系统时钟线(MCLK)上的时钟。但是我这个工程是用不到这个系统时钟线的,所以我随便填了一个。如果有需要用到的话,公式为:MCLK的频率 = 128或者256或者512 * 采样频率

 

生成工程后,在工程中添加代码:

  uint16_t iis_rec[4]={0};

HAL_I2S_Receive_DMA(&hi2s3,iis_rec,4); //开启iis

(我在一堆初始化结束之后的地方添加的)