ADC是多少位的?
12位
ADC有多少个?
1个、2个或多至3个,视不同的器材而不同;每个又有多个通道。
关于通道的名堂:
10.3.3 通道挑选
它们有什么差异:
还有其他的一些差异,这儿暂不逐个罗列。
ST为什么这么样来规划AD转化,肯定是有理由的,可是我不知道,因而,我也就难以深化地了解AD转化的各种形式。这也便是说,关于常识的了解,要把它放在其运用布景中去学习才干学得好。因而,其他相关常识积累得越多,这儿学起来也就越快,这也便是所谓的“功底”问题。或人功底深沉,意味着他见多识广,遇到的工作多,能够很快找到处理某件工作的“原型”。当然,也有一些人笼统学习才干极强,就算找不到“原型”,他也能学得很好。基本上,这类人的科学素养更高一些,在工程师、工科类学生中并不多见。
闲话少说,下面来看怎么样来运用AD转化器?
以一段源程序为例分别来解读,一起进一步了解STM32中有关符号的意义,信任今后再读库源程序,定能更上一层楼。
为看得清楚一些,以下代码用蓝色表明,而在这段代码的注释中刺进的一些代码则用赤色表明。从数据手册上摘抄下来的内容则用黄底来表明(原本数据手册摘抄部分用贴图是最好的,可是宣布博文时贴图太痛苦了,,,偷点懒)。
经过前面一系列的设置,总算能够履行ADC_Init函数了。履行完了还不可,还要指定通道转化次序,采样时刻等,接下持续。
tmpreg2 = SQR3_SQ_Set << (5 * (Rank - 1));
SQR3的值如下:
//#define SQR3_SQ_Set ((uint32_t)0x0000001F)
之所以用5去乘,看下图中的表格:ADC_SQ3中SQ1~SQ6每个都是占5位。
这下了解了:假如这个Rank是1,那么tmpreg2这个变量第[4:0]这5位将会是11111(即SQR3_SQ_Set的初始值:0x0000001f),假如Rank是2,那么tmpreg2这个变量的第[9:5]将会是11111,即tmpreg2将等于:0x000003e0,依此类推。
*/
第四个参数是采样时刻设定,代码如下:
ADCx->SMPR2 = tmpreg1;
接下来还有两件事要做,第一件是答应DMA传输
这两件工作都不费事,所以就不再剖析了。
至此一次ADC转化装备结束。很费事……或许功能强大的副产品便是费事吧,没有办法。