Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DMAy_x = DMA1_Channel1;
- DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
- DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)dest;
- DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
- DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
- DMA_InitStructure.DMA_Priority = DMA_Priority_High;
- DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
- DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
- DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
- DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
- DMA_InitStructure.DMA_BufferSize = 2; // in data unit
- DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADCx->DR;
- DMA_Init(DMAy_x, &DMA_InitStructure);
- DMA_Cmd(DMAy_x, ENABLE);
- ADCx = ADC1;
- ADC_Cmd(ADCx, DISABLE);
- while(ADCx->CR & ADC_CR_ADEN);
- ADC_DeInit(ADCx);
- ADC_InitTypeDef ADC_InitStructure;
- ADC_StructInit(&ADC_InitStructure);
- ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
- ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
- ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
- ADC_InitStructure.ADC_NbrOfRegChannel = 2;
- ADC_InitStructure.ADC_ExternalTrigEventEdge = ADC_ExternalTrigEventEdge_None;
- ADC_InitStructure.ADC_ExternalTrigConvEvent = ADC_ExternalTrigConvEvent_0;
- ADC_InitStructure.ADC_OverrunMode = ENABLE;
- ADC_InitStructure.ADC_AutoInjMode = DISABLE;
- ADC_Init(ADCx, &ADC_InitStructure);
- // Set up ADC channels
- for (uint16_t i = 0; i < nPins; ++i)
- {
- // make them regular channels with rank i +1, sample time is 19 ADC cycles
- ADC_RegularChannelConfig(ADCx, PIN_MAP[pinNames[i]].adcChannel, i + 1, ADC_SAMPLE_TIME);
- }
- ADC_DMAConfig(ADCx, ADC_DMAMode_Circular);
- ADC_DMACmd(ADCx, ENABLE);
- // Enable everything
- ADC_Cmd(ADCx, ENABLE);
- while (!(ADC_GetFlagStatus(ADCx, ADC_FLAG_RDY)));
- ADC_StartConversion(ADCx);
Add Comment
Please, Sign In to add comment