一、规则序列寄存器
今天在学习stm32的adc的时候,对于规则序列寄存器这里疑惑了很久,最后终于看懂了,下面来记录一下。
对于stm32的规则序列寄存器一共有3个,ADC_SQR1、ADC_SQR2、ADC_SQR3.
如上图中为ADC_SQR1寄存器,其中L[3:0]这四个位是设置规则通道转换序列中的通道数目,取值范围为0-15,0表示通道数目为1。SQn[4:0]的取值范围也是0-15,填入的是具体哪一个通道,表示填入的那个通道是第n个转换,相当于一个转换的优先级。下面来举一个例子:
加入我们要用3个通道,分别是ch1,ch2,ch3,那么通道数目应该设置为3个,即设置L[3:0] = 2。当我们设置ch1为第三个转换,ch2为第二个转换,ch3为读一个转换,那么我们应该将SQn[4:0]分别设置为SQ3[4:0] = 1,SQ2[4:0] = 2,SQ1[4:0] = 3。