DA1458x的ADC是10位的,引脚是PORT0的PIN0、PIN1、PIN2、PIN3.
1.引脚定义,我们用PORT0的PIN0
#define ADC_PORT GPIO_PORT_0
#define ADC_PIN GPIO_PIN_0
2.引脚初始化,还是添加在periph_setup.c里的void set_pad_functions(void)里。
GPIO_ConfigurePin( ADC_PORT, ADC_PIN, INPUT, PID_ADC, false );
3.ADC初始化
调用这个api,void adc_init(uint16_t mode, uint16_t sign, uint16_t attn ).
mode:有两种,差分模式,单端模式
sign :0 = Default, GP_ADC_SIGN(0x0400) = Conversion with opposite sign at input and output to cancel out the internal offset of the ADC and low-frequency.
这是官方SDK里对第二个参数的解释,一般用GP_ADC_SIGN。
attn :0 = attenuation x1, GP_ADC_ATTN3X(0x0002) = attenuation x3.
第三个参数是设置ADC输入衰减倍数的,有两种,不衰减或者衰减三倍。这里需要说明一点,DA1458x的ADC的参考电压是1.2V,所以如果ADC的输入电压大于1.2V的时候,只能设置为三倍衰减输入。
示例如下
adc_init(GP_ADC_SE,GP_ADC_SIGN,GP_ADC_ATTN3X);