GD32F130单片机AD采样失败

[复制链接]
161|1
 楼主 | 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));处一直死循环

使用特权

评论回复
| 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);
还有,你如果只需要规则组单次采样的话,间断模式不用开启

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表