Не удается заставить работать АЦП STM32F107

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Встал на лапы
Сообщения: 116
Зарегистрирован: Ср апр 28, 2010 17:49:14

Сообщение zenek »

Код: Выделить всё

void ADC_Init (void) {

  RCC->APB2ENR |= (1<<4);                      /* enable clock for GPIOC      */
  GPIOC->CRL &= 0xFFF0FFFF;                    /* Configure ADC.14 input.     */

  RCC->APB2ENR |= (1<<9);                      /* enable clock for ADC1       */
  ADC1->SQR1  = 0x00000000;                    /* one conversion              */
  ADC1->SQR3  = (14<< 0);                      /* set order to chn14          */
  ADC1->SMPR1 = ( 5<<12);                      /* sample time (55,5 cycles)   */ 

  ADC1->CR1   =  0x00000100;                   /* independant mode, SCAN mode */
  ADC1->CR2   =  0x000E0003;                   /* data align right            */
                                               /* continuous conversion       */
                                               /* EXTSEL = SWSTART            */
                                               /* enable ADC                  */ 
  ADC1->CR2  |= 0x00000008;                    /* Reset calibration           */
  while (ADC1->CR2 & 0x00000008);

  ADC1->CR2  |= 0x00000004;                    /* Start calibration           */
  while (ADC1->CR2 & 0x00000004);

  ADC1->CR2  |=  0x00500000;                   /* start SW conversion         */

}
Это инициализация, но в ADC1_DR постоянно нули... хотя вход замкнут на питание 3.3в.
Еще вопрос про калибровку, в даташите четко написано:

Код: Выделить всё

Before starting a calibration the ADC must have been in power-off state (ADON bit = ‘0’) for
at least two ADC clock cycles.
Но во всех примерах даже от кейла, сначала запускается АЦП (ADON=1) а потом проводится калибровка
Реклама
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

Реклама
Ответить

Вернуться в «ARM»