ADC是模数转换的意思,就是把模拟信号转变为数字信号,其中A是模拟信号(Analog signal) D是数字信号(digital signal) 。模数转换也很简单,官方给的文档那里也有写,而且非常详细,我这里就简单放我自己的代码出来给大家看看吧,大家可以根据自己的硬件IO口设定。
light.h里面的定义
#define GPIO_VBAT_DETECT GPIO_PB1
#define PC5_FUNC AS_GPIO
#define PC5_INPUT_ENABLE 0
#define ADC_INPUT_PCHN B1P //corresponding ADC_InputPchTypeDef in adc.h
main_light.c里面的定义
#define GPIO_VBAT_DETECT GPIO_PB1
#define PB7_FUNC AS_GPIO
#define PB7 INPUT_ENABLE 0
#define ADC_INPUT_PCHN B1P
gpio_set_output_en(GPIO_VBAT_DETECT,1);
gpio_write(GPIO_VBAT_DETECT,1); //主要加到这里
#if 1
analog_write(anareg_adc_res_m,RES14|FLD_ADC_EN_DIFF_CHN_M);
adc_set_ain_chn_misc(ADC_INPUT_PCHN,GND);
#else
adc_set_ain_channel_differential_mode(ADC_MISC_CHN,ADC_INPUT_PCHN,GND);
adc_set_resolution(ADC_MISC_CHN,RES14);
#endif
定义获得ADC值的函数(直接调用即可)
unsigned int adc_sample_and_get_result(void);
static u32 t;
t=adc_sample_and_get_result();
官方给的文档非常详细,可以自己去看一下 。下期见,ヾ(•ω•`)o88!