Страница 1 из 1

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

Добавлено: Чт мар 28, 2013 15:40:28
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) а потом проводится калибровка

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

Добавлено: Чт мар 28, 2013 23:22:12
Vov123