AD初始化
ADC_CR1 = 0x60; // 设置AD转化时钟1/12,单次转化形式
ADC_CR2 = 0x08; // 设置数据为右对齐
ADC_CR3 = 0x00; // 不运用数据缓冲
ADC_CSR = 0x03; // 挑选AD转化通道3
ADC_TDRL=0xff; //封闭施密特触发器
AD转化程序
void ADC_change(void)
{
ADC_CSR = 0x03; // 挑选AD转化通道3
ADC_CR1 |= 0x01; // 翻开AD模块电源
Delay1ms(50); // 延时至少100uS,用于等候采样坚持电容充电至安稳
ADC_CR1 |= 0x01; // 发动AD转化
while(!(ADC_CSR & 0x80)); // 等候AD转化完结
AD_data[5]=ADC_DRH;
AD_data[6]=ADC_DRL;
AD_result1=(AD_data[5]*256)+AD_data[6];
ad_temp=(AD_result1*(float)3300)/(float)1024; //3.3V供电
AD_result=(uint)ad_temp;
AD_data[0]=(uchar)(AD_result/1000);
AD_data[1]=(uchar)((AD_result%1000)/100);
AD_data[2]=(uchar)(((AD_result%1000)%100)/10);
AD_data[3]=(uchar)(((AD_result%1000)/100)%10);
ADC_CSR &= 0x7f; //EOC软件清零
ADC_CR1 &= 0xFE; //封闭ADC
}