44namespace stm32_i2s {
55
66// Stm32I2sClass I2S;
7+ Stm32I2sClass *self_I2S = nullptr ;
78
89bool stm32_i2s_is_error = false ;
910
@@ -23,7 +24,7 @@ extern "C" void HAL_I2S_RxHalfCpltCallback(I2S_HandleTypeDef *hi2s) {
2324 self_I2S->cb_TxRxHalfComplete (hi2s);
2425}
2526
26- extern " C" void HAL_I2S_ErrorCallback (I2S_HandleTypeDef *hi2s) { Report_Error (); }
27+ extern " C" void HAL_I2S_ErrorCallback (I2S_HandleTypeDef *hi2s) { Report_Error (10 ); }
2728
2829/* *
2930 * @brief This function handles DMA1 stream0 global interrupt.
@@ -54,28 +55,22 @@ extern "C" void HAL_I2S_MspDeInit(I2S_HandleTypeDef *hi2s) { self_I2S->cb_HAL_I2
5455 * @brief This function is executed in case of error occurrence.
5556 * @retval None
5657 */
57- void Report_Error () {
58+ void Report_Error (int no ) {
5859 stm32_i2s_is_error = true ;
59- STM32_LOG (" %s" , " stm32-i2s: Error" );
60+ STM32_LOG (" %s %d " , " stm32-i2s: Error" , no );
6061}
6162
6263/* *
6364 * @brief Write log output to Serial
6465 */
6566void STM32_LOG (const char *fmt, ...) {
66- // char log_buffer[200];
67- // strcpy(log_buffer, "STM32: ");
68- // va_list arg;
69- // va_start(arg, fmt);
70- // int len = vsnprintf(log_buffer + 7, 200, fmt, arg);
71- // va_end(arg);
72- // Serial.println(log_buffer);
73- // Serial.flush();
74-
75- // minimize progmem when not used
67+ char log_buffer[200 ];
68+ strcpy (log_buffer, " STM32: " );
7669 va_list arg;
7770 va_start (arg, fmt);
78- self_I2S->STM32_LOG (fmt, arg);
71+ int len = vsnprintf (log_buffer + 7 , 200 , fmt, arg);
72+ va_end (arg);
73+ self_I2S->STM32_LOG (log_buffer);
7974 va_end (arg);
8075}
8176
0 commit comments