void ADC_Config(void) { CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE); CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, ENABLE); ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2); ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles); ADC_Cmd(ADC1, ENABLE); ADC_ChannelCmd(ADC1, ADC_Channel_24, ENABLE); //设置ADC通道 SYSCFG_REMAPDMAChannelConfig(REMAP_DMA1Channel_ADC1ToChannel0); DMA_Init(DMA1_Channel0, BUFFER_ADDRESS, ADC1_DR_ADDRESS, BUFFER_SIZE, DMA_DIR_PeripheralToMemory, DMA_Mode_Circular, DMA_MemoryIncMode_Inc, DMA_Priority_High, DMA_MemoryDataSize_HalfWord); DMA_Cmd(DMA1_Channel0, ENABLE); DMA_ITConfig(DMA1_Channel0, DMA_ITx_TC, ENABLE); DMA_GlobalCmd(ENABLE); }
/** * @brief Configure DMA peripheral * @param None * @retval None */ static void DMA_Config(void) { /* Connect ADC1 to DMA1 channel 0 */ SYSCFG_REMAPDMAChannelConfig(REMAP_DMA1Channel_ADC1ToChannel0); DMA_Init(DMA1_Channel0, BUFFER_ADDRESS, ADC1_DR_ADDRESS, BUFFER_SIZE, DMA_DIR_PeripheralToMemory, DMA_Mode_Circular, DMA_MemoryIncMode_Inc, DMA_Priority_High, DMA_MemoryDataSize_HalfWord); /* Connect DMA1 channel 2 to TIM1 */ DMA_Init(DMA1_Channel2, BUFFER_ADDRESS, TIM1_CCR1_ADDRESS, BUFFER_SIZE, DMA_DIR_MemoryToPeripheral, DMA_Mode_Circular, DMA_MemoryIncMode_Inc, DMA_Priority_High, DMA_MemoryDataSize_HalfWord); /* DMA1 Channel0 enable */ DMA_Cmd(DMA1_Channel0, ENABLE); /* DMA1 Channel2 enable */ DMA_Cmd(DMA1_Channel2, ENABLE); /* DMA1 enable */ DMA_GlobalCmd(ENABLE); }
/** * @brief Configure DMA peripheral * @param None * @retval None */ static void DMA_Config(void) { /* Connect ADC to DMA channel 0 */ SYSCFG_REMAPDMAChannelConfig(REMAP_DMA1Channel_ADC1ToChannel0); DMA_Init(DMA1_Channel0, BUFFER_ADDRESS, ADC1_DR_ADDRESS, BUFFER_SIZE, DMA_DIR_PeripheralToMemory, DMA_Mode_Circular, DMA_MemoryIncMode_Inc, DMA_Priority_High, DMA_MemoryDataSize_HalfWord); /* DMA Channel0 enable */ DMA_Cmd(DMA1_Channel0, ENABLE); /* Enable DMA1 channel0 Transfer complete interrupt */ DMA_ITConfig(DMA1_Channel0, DMA_ITx_TC, ENABLE); /* DMA enable */ DMA_GlobalCmd(ENABLE); }