电流偏置代码ADC的高八位为什么要乘以256?为什么ADC的数值设置成30,来达到稳定?

2019-03-23 17:29发布

//AD初始化
void AD_int(void)
{
        u8 value,i;
        u16 ADC_TDR_tmp;
       
        ADC2->CSR = 10; //AIN10通道选择       
        //select 4MHz clock based on 16MHz fMaster (div4), single mode
        ADC2->CR1 = 0x20;

        ADC2->CR2 = 0x08;//数据右对齐
        ADC2->TDRH=0x24;//AIN13 AIN10禁止施密特触发       
        ADC2->CR1 |= 0X01;//使能ADC
       
        value=30;
        while(value--); //等待ADC稳定                  

        ADC2->CSR &= 0x7f;//清EOC标志
        ADC2->CR1 |= 0x01;//启动AD
       
        i=0;
        do{
                if(ADC2->CSR&0x80)//转换结束
                        {               
                                DIin=ADC2->DRH*256+ADC2->DRL;//电流偏置代码获取
                                ADC2->CR1 |= 0x01;//启动AD
                                i++;
                        }               
         }while(i<20);//第20次采集作为电流真实偏置代码处理
               
        ADC2->CSR |= 13; //AIN13通道选择       
        ADChan=0;
        ADC2->CSR &= 0x7f;//清EOC标志
        ADC2->CR1 |= 0x01;//启动AD
}

电流偏置代码ADC的高八位为什么要乘以256?为什么ADC的数值设置成30,来达到稳定?


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。