主模式也支持发送或接收,且半双工机制下SD引脚只能配置成SDO输出或SDI输入。收发状态、实
现方法类同SPI从模式,配置流程如下:
1. 配置SPI_I2S_GCTL.SPIEN位为‘1’,开启模块使能;
2. 配置SPI_I2S_GCTL.MODE位为‘1’,使模块功能为主模式;
3. 配置SPI_I2S_CCTL.CPOL位,选择时钟空闲状态时的输出电平;
4. 配置SPI_I2S_I2SCFGR.MCKOE位,选择是否向外部器件提供MCK驱动时钟;
5. 配置寄存器SPI_I2S_I2SCFGR中的I2SDIV[8:0]、DATLEN和CHLEN位,以符合**得到的音
频采样频率及数据包帧格式,计算方法请参考27.4.7时钟预分频器;
6. 配置SPI_I2S_I2SCFGR.SPI_I2S位为‘1’,使能I2S传输功能;
7. 配置寄存器SPI_I2S_I2SCFGR中的I2SSTD[1:0]、PCMSYNC位,选择I2S传输时使用的通信
标准;
8. 配置SPI_I2S_GCTL.DMAMODE位为‘1’,以启用DMA传输;
9. 开启半双工传输许可,即配置寄存器SPI_I2S_GCTL中的TXEN或RXEN位为‘1’(TXEN、
RXEN不可同时配置为‘1’)。
注意:主模式接收时,当接收到的字节个数达到寄存器SPI_I2S_RXDNR配置值时,将立即停止传输
(CK时钟输出结束,并固定在CPOL位配置的电平状态)。
|