Skip to content

Commit fa7b5c9

Browse files
committed
Add the call to WM8994_RegisterBusIO to ensure proper initialization of the WM8994Obj object, preventing a hard fault
1 parent 78b7a76 commit fa7b5c9

File tree

1 file changed

+21
-9
lines changed
  • Projects/STM32H747I-DISCO/Examples/SPDIFRX/SPDIFRX_AudioPlay/CM7/Src

1 file changed

+21
-9
lines changed

Projects/STM32H747I-DISCO/Examples/SPDIFRX/SPDIFRX_AudioPlay/CM7/Src/main.c

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -308,21 +308,33 @@ static void Playback_Init(void)
308308
IOCtx.ReadReg = BSP_I2C4_ReadReg16;
309309
IOCtx.WriteReg = BSP_I2C4_WriteReg16;
310310
IOCtx.GetTick = BSP_GetTick;
311-
312-
/* Initialize audio driver */
313-
if(WM8994_ReadID(&WM8994Obj, &id) != WM8994_OK)
314-
{
315-
Error_Handler();
316-
}
317-
else if(id != WM8994_ID)
311+
312+
if(WM8994_RegisterBusIO(&WM8994Obj, &IOCtx) != WM8994_OK)
318313
{
319314
Error_Handler();
320315
}
321316
else
322317
{
323-
Audio_Drv = (AUDIO_Drv_t *) &WM8994_Driver;
324-
Audio_CompObj = &WM8994Obj;
318+
/* Reset the codec */
319+
if(WM8994_Reset(&WM8994Obj) != WM8994_OK)
320+
{
321+
Error_Handler();
322+
}
323+
else if(WM8994_ReadID(&WM8994Obj, &id) != WM8994_OK)
324+
{
325+
Error_Handler();
326+
}
327+
else if(id != WM8994_ID)
328+
{
329+
Error_Handler();
330+
}
331+
else
332+
{
333+
Audio_Drv = (AUDIO_Drv_t *) &WM8994_Driver;
334+
Audio_CompObj = &WM8994Obj;
335+
}
325336
}
337+
326338
codec_init.Resolution =0;
327339
/* Fill codec_init structure */
328340
codec_init.Frequency = AUDIO_FREQUENCY;

0 commit comments

Comments
 (0)