freeelectron 发表于 2021-2-8 22:03

【东软载波ES32F369x+ADC采样】

1、引脚使用PA5,也就是ADC的通道9




2、引脚复用功能
复用功能是功能0,因此在软件配置的时候需要配置为复用功能0


3、ADC初始化
硬件设计上,使用VDD作为参考,因此软件配置的时候也要配置为使用VDD。
void adc_init(void)
{
        md_gpio_init_t x;

        x.mode= MD_GPIO_MODE_INPUT;
        x.pupd= MD_GPIO_PUSH_UP;
        x.odos= MD_GPIO_PUSH_PULL;
        x.podrv = MD_GPIO_OUT_DRIVE_1;
        x.nodrv = MD_GPIO_OUT_DRIVE_1;
        x.flt   = MD_GPIO_FILTER_DISABLE;
        x.type= MD_GPIO_TYPE_CMOS;
        x.func= MD_GPIO_FUNC_0;
        md_gpio_init(GPIOA, MD_GPIO_PIN_5, &x);
       
        md_adc_init_t h_adc;
md_adc_nch_conf_t config;
       
md_adc_struct_init(&h_adc);
        md_adc_normal_struct_init(&config);
        md_adc_init(ADC0, &h_adc);
        md_adc_normal_channel_config(ADC0, &config);
}
4、获取ADC
uint32_t get_adc_value(void)
{
        uint32_t value=0;
                /* Start normal convert */
        md_adc_set_normal_channel_conv_start_nchtrg(ADC0);
        /* Wait convert finish */
        while (md_adc_get_stat_nche(ADC0) == 0);
        /* Clear complete flag */
        md_adc_set_clr_nche(ADC0);
        /* Read normal convert result */
        value = md_adc_get_normal_channel_val(ADC0);
       
        return value;
}5、现象
通过调节R8的阻值,可以看到ADC采样值的变化


页: [1]
查看完整版本: 【东软载波ES32F369x+ADC采样】