GD32F107内部ADC代码一直卡死在 while( !adc_flag_get(ADC0,ADC_FLAG_EOC) ); 不知道怎么回事,ADC配置代码如下:
void adc_config( void )
{
uint16_t i,j;
// ÅäÖÃÄ£ÄâIO¿Ú
gpio_init(GPIOA, GPIO_MODE_AIN, GPIO_OSPEED_50MHZ, GPIO_PIN_4 | GPIO_PIN_5 );
// ʹÄÜʱÖÓ
rcu_periph_clock_enable(RCU_ADC0);
rcu_periph_clock_enable(RCU_DMA0);
rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV8);
// ģʽ
adc_special_function_config(ADC0, ADC_CONTINUOUS_MODE, ENABLE);
// Èí¼þ´¥·¢
adc_external_trigger_source_config(ADC0,ADC_REGULAR_CHANNEL,ADC0_1_2_EXTTRIG_REGULAR_NONE);
// Êý¾ÝÓÒ¶ÔÆë
adc_data_alignment_config(ADC0, ADC_DATAALIGN_RIGHT);
// ¶ÀÁ¢Ä£Ê½
adc_mode_config(ADC_MODE_FREE);
// ͨµÀÊýÁ¿ÅäÖÃ
adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, 1);
// ͨµÀÅäÖÃ
adc_regular_channel_config(ADC0, 0, ADC_CHANNEL_4, ADC_SAMPLETIME_55POINT5);
//adc_regular_channel_config(ADC0, 1, ADC_CHANNEL_5, ADC_SAMPLETIME_239POINT5);
// ʹÄÜADC
adc_enable(ADC0);
for(i=0;i<500;i++)
for(j=0;j<500;j++);
// ADCУ׼
adc_calibration_enable(ADC0);
// ʹÄÜÈí¼þ´¥·¢
adc_software_trigger_enable(ADC0, ADC_REGULAR_CHANNEL);
// DMAʹÄÜ
adc_dma_mode_enable(ADC0);
}
有没有人知道怎么回事的?
|