你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
wandersky

wandersky

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
1 回答

stm32f407IG I2S2_CK 分配到PI1引脚不能用的问题

未设置标签
wandersky wandersky 回答时间: 2016-6-23 11:29

/* ********************************************************************************************************* *        函 数 名: I2S_Config *        功能说明: 配置STM32的I2S外设工作模式 *        形    参:  _usStandard : 接口标准,I2S_Standard_Phillips, I2S_Standard_MSB 或 I2S_Standard_LSB *                          _usMCLKOutput : 主时钟输出,I2S_MCLKOutput_Enable or I2S_MCLKOutput_Disable *                          _usAudioFreq : 采样频率,I2S_AudioFreq_8K、I2S_AudioFreq_16K、I2S_AudioFreq_22K、 *                                                        I2S_AudioFreq_44K、I2S_AudioFreq_48 *                          _usMode : CPU I2S的工作模式,I2S_Mode_MasterTx、I2S_Mode_MasterRx、 *                                                 *        返 回 值: 无 ********************************************************************************************************* */ static void I2S_Mode_Config(uint16_t _usStandard, uint16_t _usWordLen, uint32_t _uiAudioFreq, uint16_t _usMode) {         I2S_InitTypeDef I2S_InitStructure;         if ((_usMode == I2S_Mode_SlaveTx) && (_usMode == I2S_Mode_SlaveRx))         {                 /*不支持这2种模式 */                 return;         }         /*                 For I2S mode, make sure that either:                         - I2S PLL is configured using the functions RCC_I2SCLKConfig(RCC_I2S2CLKSource_PLLI2S),                         RCC_PLLI2SCmd(ENABLE) and RCC_GetFlagStatus(RCC_FLAG_PLLI2SRDY).         */         {                 uint32_t n = 0;                 FlagStatus status = RESET;                 RCC_I2SCLKConfig(RCC_I2S2CLKSource_PLLI2S);                 RCC_PLLI2SCmd(ENABLE);                 for (n = 0; n < 500; n++)                 {                         status = RCC_GetFlagStatus(RCC_FLAG_PLLI2SRDY);                         if (status == 1)                         {                                 break;                         }                 }         }         /* 打开 I2S2 APB1 时钟 */         RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);         /* 复位 SPI2 外设到缺省状态 */         SPI_I2S_DeInit(SPI2);                  //RCC_PLLI2SConfig(213,2);        //willow add  20160118 for 录音时钟。         /* I2S2 外设配置 */         //if (_usMode == I2S_Mode_MasterTx)         {                 I2S_StructInit(&I2S_InitStructure);                 I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;                        /* 配置I2S工作模式 */                 I2S_InitStructure.I2S_Standard = _usStandard;                        /* 接口标准 */                 I2S_InitStructure.I2S_DataFormat = _usWordLen;                        /* 数据格式,16bit */                 I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Enable;        /* 主时钟模式 */                 I2S_InitStructure.I2S_AudioFreq = _uiAudioFreq;                        /* 音频采样频率 */                 I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;                 I2S_Init(SPI2, &I2S_InitStructure);                 /* Configure the I2Sx_ext (the second instance) in Slave Receiver Mode */                 I2S_FullDuplexConfig(I2S2ext, &I2S_InitStructure);                 /* 使能 SPI2/I2S2 外设 */                 I2S_Cmd(SPI2, ENABLE);                 /* Enable the I2Sx_ext peripheral for Full Duplex mode */                 I2S_Cmd(I2S2ext, ENABLE);         }         /* 禁止I2S2 TXE中断(发送缓冲区空),需要时再打开 */         SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_TXE, DISABLE);         /* 禁止I2S2 RXNE中断(接收不空),需要时再打开 */         SPI_I2S_ITConfig(I2S2ext, SPI_I2S_IT_RXNE, DISABLE); #if 0                /* 这一段代码用于测试I2S双向传输功能 */         while (1)         {                 static uint16_t usData;                 if (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == SET)                 {                         SPI_I2S_SendData(SPI2, 0x55);                 }                 if (SPI_I2S_GetFlagStatus(I2S2ext, SPI_I2S_FLAG_RXNE) == SET)                 {                         usData = SPI_I2S_ReceiveData(I2S2ext);                         printf("%02X ", usData);                 }         } #endif }

赞0
wandersky wandersky


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16