Перейти к содержанию
    

STM32L0 ADC+TIM

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
ADC1->CFGR1 |= ADC_CFGR1_EXTEN_0 | ADC_CFGR1_EXTSEL_2 | ADC_CFGR1_CONT | ADC_CFGR1_SCANDIR;
ADC1->CHSELR = ADC_CHSELR_CHSEL9 | ADC_CHSELR_CHSEL17 | ADC_CHSELR_CHSEL18;
ADC1->SMPR |= ADC_SMPR_SMP_0 | ADC_SMPR_SMP_1 | ADC_SMPR_SMP_2;
ADC1->IER |= ADC_IER_EOCIE | ADC_IER_EOSEQIE | ADC_IER_OVRIE;
ADC->CCR |= ADC_CCR_VREFEN | ADC_CCR_TSEN;

NVIC_EnableIRQ(ADC1_COMP_IRQn);
NVIC_SetPriority(ADC1_COMP_IRQn,0);

RCC->APB2ENR |= RCC_APB2ENR_TIM22EN;
TIM22->CR1 = TIM_CR1_URS;
TIM22->CR2 = TIM_CR2_MMS_1;
TIM22->PSC = 32000-1;
TIM22->ARR = 1000-1;

TIM22->CR1 |= TIM_CR1_CEN;

Таймер работает, считает 1 секунду, но не запускает АЦП. Что я делаю неправильно?
Я использовал пример из RM. Я хочу, чтобы АЦП запускался по таймеру, и после приходило прерывание, где я бы забирал результат и так далее.

 

Изменено пользователем red-30

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...