使用L011的ADC已经一段时间,大多数功能也已经体验,差个定时器触发,为什么还没写,也就两个原因,一个是我懒,定时器暂时不想学习,一个是觉得本来速率就很低,还加上定时器触发转换,速率就更低了,何况转换回来数据,一般还需要二次处理,除非你要得到一个极低极低变化的信号,比如VBAT电压.
DMA转换,这应该是应用最广泛的一种.可以按照设定的速率,批量获取数据,并且避免ADC查询,因为就算,也要吃掉28个系统时钟一次转换,10次就280个系统时钟.所以经常可以省下上万个系统时钟.
模拟看门狗,观察外部条件,是否符合,监测电压波动,电流过大过小,工作异常,其实就是一个一直转换的ADC,只不过符合条件时候,就不用提示你了,不符合条件时候,就会提示你.
ADC是沟通模拟世界和真实世界的桥梁,把电流,电压都转换成可以识别的数字信号,量化起来,可以保存.把模拟信号量化后变成数字储存,不能完全还原出原来的模拟信号,但是已经很足够来使用了.
一个例子,典型的低功耗,高精度计算,比如煤气管道的计费,因为电力不是时刻提供的,所以需要电池,然而不能一直采样啊,不然多浪费电,但是用的时候又需要计费,所以可以在打开阀门时候,开始通过模拟量采流量,每采样结束一次,也知道一次所需时间,那么流速和时间相乘,就知道所用的煤气量.这个产品也是ADC种的一种应用,采样电压电流换算出做功.这个不需要快速的变化,但是需要较高的精度,可以用到硬件过采样,还可以降低ADC频率等等.比如模拟比较器,还可以做数字控制的电流限制,当电压低于某个阈值,或者电流大于某个阈值,切断输出,当然,实际上还要看切断速度,还有单片机对过压得耐受能力,这是其他话题了.