stm8的ADC的一些总结

    

    发现自己用到一个外设的时候这次研究的透彻了,隔一段时间没用,再次用的时候还要重新去肯手册花时间熟悉一边。所以赶紧把看透的东西通过自己的组织逻辑分析总结一遍,一方面方便自己之后参考,一方面也方便大家学习。

    就以stm8s003F3P6 最简单这一颗为例来分析。8s003F3只有一个ADC1,有的8s型号是还有ADC2。ADC2是ADC1的缩水版,有的ADC1的功能ADC2是没有的的。

    ADC1一共有五种工作模式:

    第一种:single mode,也就是单次转换

        这种模式一次只会转换一个通道,一次转换完就结束了。下次转换的还需要再次触发。用起来也很简单,配置一下要转换的通道,然后设置ADC_CR1中ADON位就可以触发一次转换。转换完以后EOC标志会置位,这时候就可以读取转换值了。这种模式用的比较多

    第二、三种:continuous and buffered continuous modes

        这两种模式就是转换一个通道,转换完成以后自动会开始下一次转换。

        这两种一种带bufffer一种不带buffer。区别也很简单,带buffer的会存好几次转换的数据,直到把buffer存满才会产生EOC标志。而不带buffer的是转换完成一次就会产生一次EOC置位。

    

    第四种:single scan mode

        这种模式是用来转换一系列通道的。不如同时转换AIN0-AIN3  或者AIN0-AIN5等等。但是有个条件就是必须是从AIN0开始转换的,具体转换几个通道可以通过寄存器进行配置。所以加入你想用这种模式来获得AIN2到AIN4三个通道的值是不行的。极好只能从AIN0开始。那如果想的到AIN2和AIN3的模拟值怎么办?那就用第一种single模式吧

    第五种:continuous scan mode

    这种模式可以好第三种single scan模式来对比。区别就在于他转换完一系列通道后会自动再次从AIN0开始新的一轮转换

    

   这篇文章就对这几种模式做个总结,具体的代码就不列了。参考官方的库函数例程也很简单。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注