stm32: adc common v2: add circular dma mode

Tested only on the F3 so far.
This commit is contained in:
mfm 2018-05-31 11:14:28 +02:00 committed by Karl Palsson
parent bc7e454741
commit f6517f7816
2 changed files with 22 additions and 1 deletions

View File

@ -205,7 +205,8 @@ bool adc_get_overrun_flag(uint32_t adc);
void adc_clear_overrun_flag(uint32_t adc);
uint32_t adc_read_regular(uint32_t adc);
void adc_start_conversion_regular(uint32_t adc);
void adc_enable_dma_circular_mode(uint32_t adc);
void adc_disable_dma_circular_mode(uint32_t adc);
END_DECLS
#endif

View File

@ -389,4 +389,24 @@ void adc_start_conversion_regular(uint32_t adc)
ADC_CR(adc) |= ADC_CR_ADSTART;
}
/** @brief Enable circular mode for DMA transfers
*
* For this to work it needs to be ebabled on the DMA side as well.
*
* @param[in] adc Unsigned int32. ADC base address (@ref adc_reg_base)
*/
void adc_enable_dma_circular_mode(uint32_t adc)
{
ADC_CFGR1(adc) |= ADC_CFGR1_DMACFG;
}
/** @brief Disable circular mode for DMA transfers
*
* @param[in] adc Unsigned int32. ADC base address (@ref adc_reg_base)
*/
void adc_disable_dma_circular_mode(uint32_t adc)
{
ADC_CFGR1(adc) &= ~ADC_CFGR1_DMACFG;
}
/**@}*/