Спойлер
Код: Выделить всё
CC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
ADC1->CR2 |= ADC_CR2_CAL; //Запуск калибровки АЦП
while (!(ADC1->CR2 & ADC_CR2_CAL));
//Задаем длительность выборки
ADC1->SMPR2 |= (ADC_SMPR2_SMP8_2 | ADC_SMPR2_SMP8_1 | ADC_SMPR2_SMP8_0);
ADC1->CR2 |= ADC_CR2_JEXTSEL; //Преобразование инжектированной группы
ADC1->CR2 |= ADC_CR2_JEXTTRIG; //Разрешаем внешний запуск инжектированной группы
ADC1->CR2 |= ADC_CR2_CONT; //Преобразования запускаются одно за другим
ADC1->CR1 |= ADC_CR1_JAUTO; //Разрешить преобразование инжектированной группы
ADC1->JSQR = ADC_JSQR_JL_0 | //два канала в группе
ADC_JSQR_JSQ3_3| //Задаем номер канала (выбран IN8)
ADC_JSQR_JSQ4_3 | ADC_JSQR_JSQ4_0 //Задаем номер канала (выбран IN9)
;
ADC1->CR2 |= ADC_CR2_ADON;//Теперь включаем АЦП
ADC1->CR2 |= ADC_CR2_JSWSTART; //Запуск преобразований----------------------------
Обратил внимание, что время выборки для 8 и 9 каналов у меня диаметрально разные. Скорректировал код
Код: Выделить всё
//Задаем длительность выборки
ADC1->SMPR2 |= ADC_SMPR2_SMP8_2 | ADC_SMPR2_SMP8_1 | ADC_SMPR2_SMP8_0| //выборка 8 канала
ADC_SMPR2_SMP9_2 | ADC_SMPR2_SMP9_1 | ADC_SMPR2_SMP9_0; //выборка 9 канала
