程序问题

2019-03-23 18:48发布

本帖最后由 wanghlady 于 2014-11-3 16:19 编辑

u16 Get_Adc(u8 ch)   
{
        //éèÖÃ×a»»DòáD                           
        ADC1->SQR3&=0XFFFFFFE0;//1æÔòDòáD1 í¨μàch
        ADC1->SQR3|=ch;                                              
        ADC1->CR2|=1<<22;       //Æô¶ˉ1æÔò×a»»í¨μà
        while(!(ADC1->SR&1<<1));//μè′y×a»»½áêø                    
        return ADC1->DR;                //·μ»ØadcÖμ        
}
这里ch为1
有下面几个疑问:
1,ADC1->SQR3&=0XFFFFFFE0;是给通道编序号是么?2,工作的时候,是按照序号的顺序工作还是按照通道的顺序工作?PB0是ADC_IN8,PA0是ADC_IN0,这里的8,0是通道8和通道0吗?
假如我用PB1,是不是要用ADC1->SQ2?应该怎么配置?
3,ADC1->SQR3|=ch;这一句是什么作用呢
4,如果还要用到ADC2,ADC1和ADC2各自独立工作,可以吗



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
wanghlady
2019-03-25 00:53
Study_Stellaris 发表于 2014-11-4 08:53
第一个问题,应该是给SQR3 寄存器的末5 位 清零,为下句赋值做准备。第二个问题,从你现在的问题看不到是多 ...

1,如果是多通道,转换顺序的设置是怎么设置的?是按通道号进行转换还是按通道编号进行转换?2,如果不是多通道,那我调用的时候,参数应该是通道号还是通道编号?

一周热门 更多>