所用的芯片内嵌3个12位的模拟/数字转换器(ADC),每一个ADC共用多达16个外部通道以及2个内部通道。
以下是3个芯片固件库的截图:
12位:也叫ADC分辨率,采样精度。先来看看二进制的12位可表示0-4095个数,也就是说转换器通过采集转换所得到的最大的最大值是4095。如:
“111111111111”=4095,那么我们怎么通过转换器转换出来的值得到实际的电压值呢?如果我们要转换的电压范围是0V--3.3V的话,转换器就会把0V-3.3V平均分成4096份。设转换器所得到的值为x,所求电压值为y。
那么就有:
2个内部通道::一个是内部温度传感器,一个是内部参考电压。
那么我们如何用到AD转换器去应用代码呢?
首先得初始化(设置用的哪个引脚,单通道,还是多通道同时转换,是否使用DMA等配置)?
如何让转换器进行一次数据获取?
下面我来讲单通道的ADC采集:
初始化完成后,开始主函数的代码:
这里要适度添加延时,最好要计算出平均值。
为什么要使能时钟?时钟到底设置多少才适合?
对于ADC——GetConversionValue(ADC1)这个函数参数并没有指定哪个通道,如果多个通道同时使用CAN1转换器转换时候怎么获取每个通道的值呢?
第一个问题,所有的外设都要使能时钟,时钟源分为外部时钟和内部时钟,外部时钟比如接8MHz晶振,内部时钟 就在芯片内部集成,时钟源为所有的时序电路提供基本的脉冲信号,时钟源好比是一颗跳动的心脏,它按照一定的频率在跳动,所有的器官(外设)要跟心脏(时钟源)桥接起来才能工作,但不同的外设需要的频率不一样,所以在时钟源跟外设之中尝尝还会有一些分频器或者倍频器,以此来实现对频率的衰减或增强。
剩下的内容,我明天再发布,谢谢观看!