/** * @brief Initializes Audio low level. * @param None * @retval None */ void AUDIO_IO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable Reset GPIO Clock */ AUDIO_RESET_GPIO_CLK_ENABLE(); /* Audio reset pin configuration */ GPIO_InitStruct.Pin = AUDIO_RESET_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(AUDIO_RESET_GPIO, &GPIO_InitStruct); I2Cx_Init(); /* Power Down the codec */ HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_RESET); /* Wait for a delay to insure registers erasing */ HAL_Delay(5); /* Power on the codec */ HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_SET); /* Wait for a delay to insure registers erasing */ HAL_Delay(5); }
/** * @brief Initializes peripherals used by the Audio Codec driver. * @param None * @retval None */ void AUDIO_IO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* Enable Reset GPIO Clock */ AUDIO_RESET_GPIO_CLK_ENABLE(); /* Audio reset pin configuration -------------------------------------------------*/ GPIO_InitStruct.Pin = AUDIO_RESET_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(AUDIO_RESET_GPIO_PORT, &GPIO_InitStruct); I2C2_Init(); /* Power Down the codec */ CODEC_AUDIO_POWER_OFF(); /* wait for a delay to insure registers erasing */ HAL_Delay(5); /* Power on the codec */ CODEC_AUDIO_POWER_ON(); /* wait for a delay to insure registers erasing */ HAL_Delay(5); }