由于最近忘记了,自用。
转换模式
单次转换,非扫描模式
- 在非扫描模式下,列表中就只有序列1的位置有效,此时可以在序列1的位置指定我们想要转换的通道,然后ADC就会对这个通道进行模数转换。
- 等待一段时间,转换完成后,转换结果放在数据寄存器中,同时给EOC标志位置1,转换过程结束,可以在数据寄存器中读取结果,并且想要再启动一次转换,那么就需要手动再触发一次转换,如此往复。如果要换一个通道转换,那么就在转换之前,将序列1的通道改变即可。
连续转换,非扫描模式
- 非扫描模式下,列表中就只有序列1的位置有效,序列1中的通道进行转换。
- 连续转换在一次转换结束后不会停止,而是立刻开始下一轮的转换,并且一直持续下去。转换之后不需要等待一段时间,因为一直都在转换,不需要手动开始转换,也不需要判断是否结束,随时可以从数据寄存器中读取AD值。
单次转换,扫描模式
- 扫描模式,可以选择多个序列,指定通道数目, 每个序列中的通道可以重复,每次触发之后,就会依次对前几个数目的通道进行转换。转换的结果都放在数据寄存器里,为了防止被覆盖,就需要用DMA将数据及时挪走。几个通道转换完成之后,EOC标志位置1,转换结束,然后需要手动触发下一次,才能开始新一轮的转换。
- 单次转换,每触发一次,等到转换结束后就会停止,下次转换就需要再次触发才能开始。
连续转换,扫描模式
- 扫描模式,可以选择多个序列,指定通道数目, 每个序列中的通道可以重复,每次触发之后,就会依次对前几个数目的通道进行转换。
- 连续转换,一次扫描完成后,立马开始下一次的转换,不需要手动触发。
间断模式
是在扫描模式下的,是在扫描的过程中,每隔几个转换,就暂停一次,需要再次触发才能继续。
触发控制
规则组的触发源
触发控制有来自定时器的信号,也有来自引脚或者定时器的信号(需要用AFIO重映射决定),还有一个就是软件触发。
数据对齐
右对齐
16/12/8...位的数据向右靠,高位多出来的补零。
左对齐
16/12/8...位的数据向左靠,低位多出来的补零。左对齐得到的数据会比实际上大,实际上就是把数据左移了几次,数据左移一次,就是将数据乘以2。一般不用。
转换时间
采样保持(打开采样开关,小电容存储电压) + 量化编码(ADC逐次逼近,位数越多花时间越长)
- 采样保持的过程,需要闭合采样开关,等待电容充满后再断开采样开关,就会产生一个采样时间。采样保持花费的时间,可以在程序中进行配置为多少个时钟周期,采样保持的时间越长,那么精度就越高,越能避免毛刺信号的干扰,但是采样的频带就越小。
- x位的ADC花费的量化编码的时间就是x+0.5个时钟周期。例如16位分辨率的ADC,处理一位的信号,就需要一个时钟周期,最后0.5的时钟周期是臃肿时间。
- 可以使得ADC超频,转换时间可以更短,不过稳定性就没法保证了。