打印

GD32F130K8单片机ADC查询单次转换模式

[复制链接]
531|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2021-5-7 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

ADC要配置成单次转换模式,每次转换的通道不一样,下面的配置代码和每次获取转换结果是否有问题?


其中

ADC_Configuration这个是配置,在初始化调用,

ADC_Get_Result这个是获取转换结果,在main函数的主循环中调用,每次将需要转换的通道ch传进来,然后返回通道ch的转换结果。


uint16_t ADC_Get_Result(uint8_t ch)
{
    uint8_t i;
    uint16_t ADResult;


    /* ADC regular channel config */
    adc_regular_channel_config(0, ch, ADC_SAMPLETIME_55POINT5);


    ADResult = 0x0000;
    for(i = 0; i < 5; i++)
    {
        adc_software_trigger_enable(ADC_REGULAR_CHANNEL);

        while(!adc_flag_get(ADC_FLAG_EOC))
        {
            ;
        }
        ADResult += ADC_RDATA;
        adc_flag_clear(ADC_FLAG_EOC);
    }
   
    return ADResult /5;    // 返回ADC结果
}

/**
  * @brief  Configure ADC.
  * @param  None
  * @retval None
  */
void ADC_Configuration(void)
{
    /* enable ADC1 clock */
    rcu_periph_clock_enable(ADC_RCC);
    /* config ADC clock */
    rcu_adc_clock_config(RCU_ADCCK_APB2_DIV4);
   
    /* ADC contineous function enable */
    adc_special_function_config(ADC_CONTINUOUS_MODE, DISABLE);
    /* ADC trigger config */
    adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_SWRCST);
    /* ADC data alignment config */
    adc_data_alignment_config(ADC_DATAALIGN_RIGHT);
    /* ADC channel length config */
    adc_channel_length_config(ADC_REGULAR_CHANNEL, 1);

    /* ADC regular channel config */
    adc_regular_channel_config(0, ADC_V_CHANL, ADC_SAMPLETIME_55POINT5);
    /* ADC external trigger enable */
    adc_external_trigger_config(ADC_REGULAR_CHANNEL,ENABLE);
  
    /* 16 times sample, 4 bits shift */  // 使用过采样,硬件求平均值,GD32F130系列不支持
    //adc_oversample_mode_config(ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_4B, ADC_OVERSAMPLING_RATIO_MUL16);
    //adc_oversample_mode_enable();

    /* ADC resolusion 6B */
    //adc_resolution_config(ADC_RESOLUTION_12B);    // GD32F130系列不支持


    adc_enable();

    delay_1ms();
    adc_calibration_enable();
}


使用特权

评论回复
沙发
内政奇才| | 2021-5-7 10:29 | 只看该作者

GD32F130系列不支持求平均值?

使用特权

评论回复
板凳
麻花油条| | 2021-5-7 10:29 | 只看该作者

还有单片机的adc可以求平均值?

使用特权

评论回复
地板
豌豆爹| | 2021-5-7 10:30 | 只看该作者
帮楼主顶一下

使用特权

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

本版积分规则

2035

主题

7339

帖子

10

粉丝