ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
1353008 Топик полностью
SciFi (21.09.2023 16:24, просмотров: 265) ответил Eddy_Em на В общем, вот такой код:
такой код работает давно, проблем не замечено: 
NVIC_SetPriority(DMA1_Channel1_IRQn, 3);
NVIC_EnableIRQ(DMA1_Channel1_IRQn);
DMA1_Channel1->CNDTR = 2 * ADC_NCH;
DMA1_Channel1->CPAR = (int)&ADC1->DR;
DMA1_Channel1->CMAR = (int)buf;
DMA1_Channel1->CCR = DMA_CCR1_PSIZE_0
                   | DMA_CCR1_MSIZE_0
                   | DMA_CCR1_MINC
                   | DMA_CCR1_CIRC
                   | DMA_CCR1_HTIE
                   | DMA_CCR1_TCIE;
DMA1_Channel1->CCR = DMA_CCR1_PSIZE_0
                   | DMA_CCR1_MSIZE_0
                   | DMA_CCR1_MINC
                   | DMA_CCR1_CIRC
                   | DMA_CCR1_HTIE
                   | DMA_CCR1_TCIE;
                   | DMA_CCR1_EN;
ADC1->CR2 = ADC_CR2_ADON; // wake ADC
delay(1e-5 * TICKS_PER_SEC);
ADC1->CR2 |= ADC_CR2_CAL;
delay(1e-5 * TICKS_PER_SEC);
while (ADC1->CR2 & ADC_CR2_CAL) ; // wait for calibration
ADC1->CR1 = ADC_CR1_SCAN;
ADC1->CR2 |= ADC_CR2_TSVREFE
          |  ADC_CR2_DMA
          |  ADC_CR2_CONT;
ADC1->SMPR1 = 0x001FFFFF;
ADC1->SMPR2 = 0x3FFFFFFF;
ADC1->SQR3 = ( 0 * ADC_SQR3_SQ1_0)
           | ( 3 * ADC_SQR3_SQ2_0)
           | ( 5 * ADC_SQR3_SQ3_0)
           | ( 8 * ADC_SQR3_SQ4_0)
           | ( 9 * ADC_SQR3_SQ5_0)
           | (10 * ADC_SQR3_SQ6_0);
ADC1->SQR2 = (12 * ADC_SQR2_SQ7_0)
           | (13 * ADC_SQR2_SQ8_0)
           | (17 * ADC_SQR2_SQ9_0);
ADC1->SQR1 = (ADC_NCH - 1) * ADC_SQR1_L_0;
ADC1->CR2 |= ADC_CR2_ADON;
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้