1.1 初始化的通道及引脚
typedef enum
{
ADC_CH0 =BIT0, //P6.0
ADC_CH1 =BIT1, //P6.1
ADC_CH2 =BIT2, //P6.2
ADC_CH3 =BIT3, //P6.3
ADC_CH4 =BIT4, //P6.4
ADC_CH5 =BIT5, //P6.5
ADC_CH6 =BIT6, //P6.6
ADC_CH7 =BIT7, //P6.7
ADC_CH8 =BIT8, //VeREF+ //外部正基准
ADC_CH9 =BIT9, //VeREF- //外部负基准
ADC_CH10 =BITA, //片内温度传感器
ADC_CH11 =BITB, //(AVCC-AVSS)/2
ADC_CH12 =BITC, //P7.0
ADC_CH13 =BITD, //P7.1
ADC_CH14 =BITE, //P7.2
ADC_CH15 =BITF, //P7.3
ADC_CH_NUM =16u, //通道数量
}ADC_CHn; //通道
1.2 参考电压
typedef enum
{
ADC_VREF_1_5V , //内部1.5V
ADC_VREF_2_5V , //内部2.5V
ADC_VREF_3_3V , //供电电压作为参考电压
ADC_VREF_External , //使用外部提供参考电压
}ADC_VREF; //参考电压
值得注意的是,参考手册里面解释如下
单片机的采样电压是不允许超过参考电压:
Nadc=4095∗Vin−VR−VR+−VR−
Nadc=4095∗Vin−VR−VR+−VR−
从参考公式来看,必须小于参考电压,如果超过参考电压,输出只能到最大参考电压,并且还会可能烧坏单片机。
1.3 转换精度
typedef enum
{
ADC_8bit , //8 位精度,最大值256-1
ADC_10bit , //10位精度,最大值1024-1
ADC_12bit , //12位精度,最大值4096-1
}ADC_Resolution; //精度
|