打印

GD32F130单片机AD采样失败

[复制链接]
1674|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seachan|  楼主 | 2019-9-9 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void ADC1_Config(void)
{
        adc_deinit();
        rcu_adc_clock_config(RCU_ADCCK_APB2_DIV2);
        rcu_periph_clock_enable(RCU_ADC);
        adc_discontinuous_mode_config(ADC_REGULAR_CHANNEL,1);//
        adc_special_function_config(ADC_SCAN_MODE,DISABLE);//
        adc_special_function_config(ADC_INSERTED_CHANNEL_AUTO,DISABLE);
        adc_special_function_config(ADC_CONTINUOUS_MODE,DISABLE);//
        adc_data_alignment_config(ADC_DATAALIGN_RIGHT);//
        adc_channel_length_config(ADC_REGULAR_CHANNEL,1);//
        adc_external_trigger_config(ADC_REGULAR_CHANNEL,DISABLE);//
        adc_dma_mode_disable();
}


uint16_t Get_ADC(uint8_t ADC_CH)
{
        uint16_t Result;
        adc_regular_channel_config(1,ADC_CH,ADC_SAMPLETIME_1POINT5);//
        adc_flag_clear(ADC_FLAG_EOC);
        adc_enable();//
        adc_calibration_enable();
        adc_software_trigger_enable(ADC_REGULAR_CHANNEL);
        while(!adc_flag_get(ADC_FLAG_EOC));
        Result = adc_regular_data_read();
        adc_disable();
        return Result;
}
main
{
BatVoltage_Data = Get_ADC(ADC_CHANNEL_9);
}

请问配置哪有问题?while(!adc_flag_get(ADC_FLAG_EOC));处一直死循环

使用特权

评论回复
沙发
sonicll| | 2019-9-10 10:43 | 只看该作者
需要使能外部触发,设置触发源为软件触发:
    adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_NONE);
    adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE);
还有,你如果只需要规则组单次采样的话,间断模式不用开启

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

129

帖子

2

粉丝