void adc_config(void)
{
adc_deinit();
/* ADC contineous function enable */
adc_special_function_config(ADC_CONTINUOUS_MODE, ENABLE);
/* ADC trigger config */
adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_NONE);
/* ADC data alignment config */
adc_data_alignment_config(ADC_DATAALIGN_RIGHT);
adc_special_function_config(ADC_SCAN_MODE, ENABLE);
/* ADC channel length config */
adc_channel_length_config(ADC_REGULAR_CHANNEL, 4U);
/* ADC regular channel config */
adc_regular_channel_config(0U, ADC_CHANNEL_2, ADC_SAMPLETIME_55POINT5);
adc_regular_channel_config(1U, ADC_CHANNEL_3, ADC_SAMPLETIME_55POINT5);
adc_regular_channel_config(2U, ADC_CHANNEL_4, ADC_SAMPLETIME_55POINT5);
adc_regular_channel_config(3U, ADC_CHANNEL_8, ADC_SAMPLETIME_55POINT5);
adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE);
/* ADC trigger config */
adc_external_trigger_source_config(ADC_INSERTED_CHANNEL, ADC_EXTTRIG_INSERTED_NONE);
/* ADC channel length config */
adc_channel_length_config(ADC_INSERTED_CHANNEL, 2U);
/* ADC inserted channel config */
adc_inserted_channel_config(0U, ADC_CHANNEL_6, ADC_SAMPLETIME_55POINT5);
adc_inserted_channel_config(1U, ADC_CHANNEL_9, ADC_SAMPLETIME_55POINT5);
/* ADC external trigger enable */
adc_external_trigger_config(ADC_INSERTED_CHANNEL, ENABLE);
/* enable ADC interface */
adc_enable();
delay_1ms(1U);
/* ADC calibration and reset calibration */
adc_calibration_enable();
/* ADC DMA function enable */
adc_dma_mode_enable();
/* ADC software trigger enable */
adc_software_trigger_enable(ADC_REGULAR_CHANNEL);
}
我给别人写的参考代码,测试可用的
|