1.ADC 简介
STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中ADC1 和 ADC2 都有 16 个外部通道,ADC3 根据 CPU 引脚的不同通道数也不同,一般都有8 个外部通道。
2.ADC的应用—-单通道采集电压
(1)ADC_Mode:配置 ADC 的模式,当使用一个 ADC 时是独立模式,使用两个 ADC 时是双模式,在双模式下还有很多细分模式可选,我们一般使用一个 ADC 的独立模式。
(2)ScanConvMode:可选参数为 ENABLE 和 DISABLE,配置是否使用扫描。如果是单通道 AD 转换使用 DISABLE,如果是多通道 AD 转换使用 ENABLE。
(3)ADC_ContinuousConvMode:可选参数为 ENABLE 和 DISABLE,配置是启动自动连续转换还是单次转换。使用 ENABLE 配置为使能自动连续转换;使用 DISABLE 配置为单次转换,转换一次后停止需要手动控制才重新启动转换。一般设置为连续转换。
(4)ADC_ExternalTrigConv:外部触发选择,图 30-1 中列举了很多外部触发条件,可根据项目需求配置触发来源。实际上,我们一般使用软件自动触发。
(5)ADC_DataAlign:转换结果数据对齐模式,可选右对齐 ADC_DataAlign_Right 或者左对齐 ADC_DataAlign_Left。一般我们选择右对齐模式。
(6)ADC_NbrOfChannel:AD 转换通道数目,根据实际设置即可。
3.其他配置
ADC 工作参数具体配置为:独立模式、单通道采集不需要扫描、启动连续转换、使用内部软件触发无需外部触发事件、使用右对齐数据格式、转换通道为 1,并调用 ADC_Init函数完成 ADC1 工作环境配置。
RCC_ADCCLKConfig()函数用来配置 ADC 的工作时钟,接收一个参数,设置的是PCLK2 的分频系数,ADC 的时钟最大不能超过 14M。ADC_RegularChannelConfig 函数用来绑定 ADC 通道的转换顺序和时间。它接收 4 个形参,第一个形参选择 ADC 外设,可为 ADC1、ADC2 或 ADC3;第二个形参通道选择,总共可选 18 个通道;第三个形参为通道的转换顺序,可选为 1 到 16;第四个形参为采样周期选择,采样周期越短,ADC 转换数据输出周期就越短但数据精度也越低,采样周期越长,ADC 转换数据输出周期就越长同时数据精度越高。
利用 ADC 转换完成中断可以非常方便的保证我们读取到的数据是转换完成后的数据而不用担心该数据可能是 ADC 正在转换时“不稳定”的数据。我们使用 ADC_ITConfig 函数使能 ADC 转换完成中断,并在中断服务函数中读取转换结果数据。ADC_Cmd 函数控制 ADC 转换启动和停止。最后,在 ADC 校准之后调用 ADC_SoftwareStartConvCmd 函数进行软件触发 ADC 开始转换。
使用特权