Борьба с конфигурацией АЦП stm32L476RG - PullRequest
0 голосов
/ 22 ноября 2018

Я работаю над проектом, и я хотел использовать преобразование ADC (я работаю на stm32L476), но я борюсь с моим кодом.Моей целью было поместить потенциометр между землей и моим 3,3-контактным разъемом и посмотреть результат на PA1 с Putty.Вот код моей инициализации АЦП:

void BSP_Threshold_Init(){
    //Enable GPIOA clock
    RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN;

    //Configure PA1 as input
    GPIOA->MODER &= ~GPIO_MODER_MODE1_Msk;
    GPIOA->MODER |= (0x00 <<GPIO_MODER_MODE1_Pos);

     // Enable ADC clock
    RCC->APB2ENR |= RCC_AHB2ENR_ADCEN;

    // Reset ADC configuration
    ADC1->CR    = 0x00000000;
    ADC1->CFGR  = 0x00000000;
    ADC1->CFGR2  = 0x00000000;
    ADC1->SQR1 = 0x00000000;
    ADC123_COMMON->CCR = 0x00000000;

    // Enable continuous conversion mode
    ADC1->CFGR |= ADC_CFGR_CONT;

    // 12-bit resolution
    ADC1->CFGR |= (0x00 <<ADC_CFGR_RES_Pos);

    // Set sampling time to 24.5 ADC clock cycles
    ADC1->SMPR1 |= (0x03 << 0U);

    // Choose the number of conversion (here 1)
    ADC1->SQR1 |= (0x00 << 0U);

    //Choose the channel of the first conversion
    ADC1->SQR1 |= (0x01 << 6U);

    //// Select HCLK/1 as ADC clock
    ADC123_COMMON->CCR |= (0x01 <<ADC_CCR_CKMODE_Pos);

    // Enable ADC
    ADC1->CR |= ADC_CR_ADEN;

    // Start conversion
    ADC1->CR |= ADC_CR_ADSTART;

}

Затем в моем основном я хочу напечатать значение моего АЦП на Putty (я работал с Putty несколько раз, поэтому я не думаю, что естьпроблема здесь).

Вот часть кода в моем основном:

while(1)
    {

        // Wait here until ADC EOC
        while ((ADC1->ISR & ADC_ISR_EOC) != ADC_ISR_EOC);

        // Report result to console
        my_printf("ADC value = %x\r\n", ADC1->DR);

        // Wait about 200ms
        for (i=0; i<500000; i++);

    }

Я напечатал другие вещи в фазе инициализации с my_printf, но когда придет время сделать циклничего не появляется.Есть ли у вас какие-либо подсказки, что я могу сделать неправильно?Я не знаю, связана ли моя проблема с моей конфигурацией АЦП или с моей конфигурацией часов или с тем, как я ожидаю преобразования АЦП в моей основной сети.

Заранее спасибо.

...