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采样值的变化
|