玩儿了有一段时间的HAL库,今天试验I2S3发现其他的 LRCLK ,MCLK, SD,都有信号输出,但唯独BCLK没有输出,后面查找PDF文档和HAL库对比。不知道是官方软件没有挨个做实际验证还是我操作有误?
pin配置:
这是HAL库I2S初始化配置程序
- void HAL_I2S_MspInit(I2S_HandleTypeDef* i2sHandle)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- if(i2sHandle->Instance==SPI3)
- {
- /* USER CODE BEGIN SPI3_MspInit 0 */
- /* USER CODE END SPI3_MspInit 0 */
- /* Peripheral clock enable */
- __HAL_RCC_SPI3_CLK_ENABLE();
-
- /**I2S3 GPIO Configuration
- PA4 ------> I2S3_WS
- PB10 ------> I2S3_MCK
- PB12 ------> I2S3_CK
- PC11 ------> I2S3_ext_SD
- PC12 ------> I2S3_SD
- */
- GPIO_InitStruct.Pin = GPIO_PIN_4;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- GPIO_InitStruct.Pin = GPIO_PIN_10;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- GPIO_InitStruct.Pin = GPIO_PIN_12;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = <b><font color="#ff0000">GPIO_AF5_SPI3;</font></b>
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- GPIO_InitStruct.Pin = GPIO_PIN_11;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = GPIO_AF5_I2S3ext;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- GPIO_InitStruct.Pin = GPIO_PIN_12;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /* USER CODE BEGIN SPI3_MspInit 1 */
- /* USER CODE END SPI3_MspInit 1 */
- }
- }
复制代码 对照文档:
将上面初始化程序红色部分更改为AF7后,输出正常。BUG解决。
|
暂时还没用到,不过好在有解决办法,谢谢分享~