cancel
Showing results for 
Search instead for 
Did you mean: 

CubeMX 4.24.0 bug report: ADC sequencer length set incorrectly when using LL

Antti Huhtala
Associate II
Posted on February 26, 2018 at 19:50

Generating code on CubeMX 4.24.0 for STM32F100RB using LL (STM32Cube FW_F1 V1.6.0), when setting up the ADC for a 2 conversion sequence, the generated code looks like the following:

ADC_REG_InitStruct.TriggerSource = LL_ADC_REG_TRIG_SOFTWARE;

ADC_REG_InitStruct.SequencerLength = 2;

ADC_REG_InitStruct.SequencerDiscont = LL_ADC_REG_SEQ_DISCONT_DISABLE;

ADC_REG_InitStruct.ContinuousMode = LL_ADC_REG_CONV_SINGLE;

ADC_REG_InitStruct.DMATransfer = LL_ADC_REG_DMA_TRANSFER_UNLIMITED;

LL_ADC_REG_Init(ADC1, &ADC_REG_InitStruct);

Looks good initially, but unfortunately doesn't work. Only one conversion is actually performed. The reason is that SequencerLength should be configured with one of the ADC_LL_EC_REG_SEQ_SCAN_LENGTH group macros. That is, one of LL_ADC_REG_SEQ_SCAN_DISABLE, LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS, LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS etc. These indeed take on values very different from 2, 3, 4 etc.

Changing the sequencer length manually to the proper value of 

LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS fixes the problem.

0 REPLIES 0