@@ -184,21 +184,22 @@ int AdvancedADC::begin(uint32_t resolution, uint32_t sample_rate, size_t n_sampl
184
184
descr->dmabuf [1 ] = descr->pool ->allocate ();
185
185
186
186
// Init and config DMA.
187
- hal_dma_config (&descr->dma , descr->dma_irqn , DMA_PERIPH_TO_MEMORY);
187
+ if ( hal_dma_config (&descr->dma , descr->dma_irqn , DMA_PERIPH_TO_MEMORY) < 0 ) return 0 ;
188
188
189
189
// Init and config ADC.
190
- hal_adc_config (&descr->adc , ADC_RES_LUT[resolution], descr->tim_trig , adc_pins, n_channels);
190
+ if ( hal_adc_config (&descr->adc , ADC_RES_LUT[resolution], descr->tim_trig , adc_pins, n_channels) < 0 ) return 0 ;
191
191
192
192
// Link DMA handle to ADC handle, and start the ADC.
193
193
__HAL_LINKDMA (&descr->adc , DMA_Handle, descr->dma );
194
- HAL_ADC_Start_DMA (&descr->adc , (uint32_t *) descr->dmabuf [0 ]->data (), descr->dmabuf [0 ]->size ());
194
+ if ( HAL_ADC_Start_DMA (&descr->adc , (uint32_t *) descr->dmabuf [0 ]->data (), descr->dmabuf [0 ]->size ()) != HAL_OK) return 0 ;
195
195
196
196
// Re/enable DMA double buffer mode.
197
197
hal_dma_enable_dbm (&descr->dma , descr->dmabuf [0 ]->data (), descr->dmabuf [1 ]->data ());
198
198
199
199
// Init, config and start the ADC timer.
200
200
hal_tim_config (&descr->tim , sample_rate);
201
- HAL_TIM_Base_Start (&descr->tim );
201
+ if (HAL_TIM_Base_Start (&descr->tim ) != HAL_OK) return 0 ;
202
+
202
203
return 1 ;
203
204
}
204
205
0 commit comments