第四章 金龙107——ADC
4.1 ADC简介:STM32的ADC是一个12位逐次逼近型模拟数字转换器,它多达18个通道,可测量16个外部通道和2个内部通道,各通道的转换可单次,连续,扫描或间断模式执行,转换结果可以左对齐或右对齐的方式存储在16位数据寄存器(ADC_DR)中。
4.2实验说明:在本实验中,STM32采集AD值,并且通过USART1串口上传到上位机,并打印其数值,
主要跳线帽:JP4和JP7都接在2-3上,JP10,JP11插在2-3上。
上位机需要安装usb转串口的驱动程序
4.3硬件说明: 该实验使用了开发板上的滑动变阻器,来改变其要采集的AD值,也使用了USART1把采集到的数据送到上位机并打印。
4.4程序说明:在该程序中,主要是对USART和ADC的配置,同样USART的设置,主要是端口的复用,和USART的波特率等设置。
本节ADC程序设计的要点如下,①打开ADC及相应外设的时钟。②设置GPIOC.0为模拟输入(该模式也仅为ADC所使用)。③初始化ADC寄存器组,使用ADC1第10个转换通道,转换数位1,采样时间55.5周期。
下图数是STM32的ADC通道与GPIO对应表
浏览一下main函数
这里有一个将AD值转换成电压值的计算公式,其公式是通用的实际电压值=LSB*AD转换值,我们已经知道,STM32ADC的转换精度为12位,金龙107板子的Vref+的参考电压为3.3v,所以,LSB=3.3/ file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps2F0.tmp.png=3.3/4096。
4.5实验现象: 连接串口线,插好跳线帽,下载程序,打开串口调试程序,找到对应的端口,打开串口调试助手,并做好相应设置,旋转滑动变阻器VR1,现象如图所示