В двух словах, проблема такая.
когда зашивается вот этот код:
Код: Выделить всё
int main(void)
{
volatile int i;
int adc_channel_0_value;
/*led*/
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER |= GPIO_MODER_MODER6_0;
/*ADC Prescaler =2 */
ADC->CCR &= 0xFFFCFFFF;
ADC->CCR |= ADC_CCR_ADCPRE_0;
/*add clock*/
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
/*PIN A0 - ADC_IN0*/
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= GPIO_MODER_MODER0;
ADC1->SQR5 |= ADC_SQR5_SQ1_0;
ADC1->CR2 = ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTEN;
/*add power*/
ADC1->CR2 |= ADC_CR2_ADON;
/* Wait until the ADC1 is ready */
while((ADC1->SR & ADC_FLAG_ADONS) == (uint32_t)RESET);
while(1)
{
ADC1->CR2 |= ADC_CR2_SWSTART;
while ((ADC1->SR & ADC_SR_EOC) != ADC_SR_EOC);
adc_channel_0_value = ADC1->DR;
GPIOB->BSRRL = GPIO_BSRR_BS_6;
for( i=0 ;i<100000;i++){};
GPIOB->BSRRH = GPIO_BSRR_BS_6;
for( i=0 ;i<100000;i++){};
}
return 0;
}
Код: Выделить всё
while((ADC1->SR & ADC_FLAG_ADONS) == (uint32_t)RESET);
Спасибо!


