《STM32嵌入式单片机原理与应用》 课件 第7章 模数转换器(ADC)_第1页
《STM32嵌入式单片机原理与应用》 课件 第7章 模数转换器(ADC)_第2页
《STM32嵌入式单片机原理与应用》 课件 第7章 模数转换器(ADC)_第3页
《STM32嵌入式单片机原理与应用》 课件 第7章 模数转换器(ADC)_第4页
《STM32嵌入式单片机原理与应用》 课件 第7章 模数转换器(ADC)_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章模/数转换器(ADC)本章讲述了模/数(A/D)转换器,包括模拟量输入通道、模拟量输入信号类型与量程自动转换、STM32F103VET6集成的ADC模块、ADC库函数、ADC使用流程和模/数(A/D)转换器应用实例。7.1模拟量输入通道当计算机用作测控系统时,系统总要有被测量信号的输入通道,由计算机拾取必要的输入信息,对于测量系统而言,如何准确获取被测信号是其核心任务;而对测控系统来讲,对被控对象状态的测试和对控制条件的监察也是不可缺少的环节。系统需要的被测信号,一般可分为开关量和模拟量二种。所谓开关量输入,是指输入信号为状态信号,其信号电平只有二种,即高电平或低电平。对于这类信号,只需经放大、整形和电平转换等处理后,即可直接送入计算机系统。对于模拟量输入,由于模拟信号的电压或电流是连续变化信号,其信号幅度在任何时刻都有定义,因此对其进行处理就较为复杂,在进行小信号放大、滤波量化等处理过程中需考虑干扰信号的抑制、转换精度及线性等诸多因素;而这种信号又是测控系统中最普通、最常碰到的输入信号,如对温度、湿度、压力、流量、液位、气体成份等信号的处理等。图7-1模拟量输入通道的组成模拟量输入通道根据应用要求的不同,可以有不同的结构形式。图7-1是多路模拟量输入通道的组成框图。从图7-1可看出,模拟量输入通道一般由信号处理、模拟开关、放大器、采样—保持器和A/D转换器组成。根据需要,信号处理可选择的内容包括小信号放大、信号滤波、信号衰减、阻抗匹配、电平变换、非线性补偿、电流/电压转换等。7.2模拟量输入信号类型与量程自动转换在接到一个具体的测控任务后,需根据被测控对象选择合适的传感器,从而完成非电物理量到电量的转换,经传感器转换后的量,如电流、电压等,往往信号幅度很小,很难直接进行模数转换,因此,需对这些模拟电信号进行幅度处理和完成阻抗匹配、波形变换、噪声的抑制等要求,而这些工作需要放大器完成。模拟量输入信号主要有以下两类:

7.2.1模拟量输入信号类型第一类为传感器输出的信号,如:⑴电压信号:一般为mV信号,如热电偶(TC)的输出或电桥输出。⑵电阻信号:单位为Ω,如热电阻(RTD)信号,通过电桥转换成mV信号。⑶电流信号:一般为μA信号,如电流型集成温度传感器AD590的输出信号,通过取样电阻转换成mV信号。对于以上这些信号往往不能直接送A-D转换,因为信号的幅值太小,需经运算放大器放大后,变换成标准电压信号,如0~5V,1~5V,0~10V,-5V~+5V等,送往A-D转换器进行采样。有些双积分A-D转换器的输入为-200mV~+200mV或-2V~+2V,有些A-D转换器内部带有程控增益放大器(PGA),可直接接受mV信号。第二类为变送器输出的信号,如:⑴电流信号:0~10mA(0~1.5kΩ负载)或4~20mA(0~500Ω负载)。⑵电压信号:0~5V或1~5V等。电流信号可以远传,通过一个标准精密取样电阻就可以变成标准电压信号,送往A-D转换器进行采样,这类信号一般不需要放大处理。

由于传感器所提供的信号变化范围很宽(从微伏到伏),特别是在多回路检测系统中,当各回路的参数信号不一样时,必须提供各种量程的放大器,才能保证送到计算机的信号一致(如0~5V)。在模拟系统中,为了放大不同的信号,需要使用不同倍数的放大器。而在电动单位组合仪表中,常常使用各种类型的变送器,如温度变送器、差压变送器、位移变送器等。但是,这种变送器造价比较贵,系统也比较复杂。随着计算机的应用,为了减少硬件设备,已经研制出可编程增益放大器(ProgrammableGainAmplifier),简称PGA。它是一种通用性很强的放大器,其放大倍数可根据需要用程序进行控制。采用这种放大器,可通过程序调节放大倍数,使A/D转换器满量程信号达到均一化,因而大大提高测量精度。这就是量程自动转换。7.2.2量程自动转换7.3STM32F103VET6集成的ADC模块STM32F103VET6微控制器集成有18路12位高速逐次逼近型模数转换器(ADC),可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。ADC的输入时钟不得超过14MHz,由PCLK2经分频产生。1)12位分辨率。2)转换结束、注入转换结束和发生模拟看门狗事件时产生中断。3)单次和连续转换模式。4)从通道0到通道n的自动扫描模式。5)自校准功能。6)带内嵌数据一致性的数据对齐。7)采样间隔可以按通道分别编程。8)规则转换和注入转换均有外部触发选项。9)间断模式。10)双重模式(带2个或以上ADC的器件)。7.3.1STM32的ADC概述11)ADC转换时间:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)。12)ADC供电要求:2.4~3.6V。13)ADC输入范围:VREF-≤VIN≤VREF+。14)规则通道转换期间有DMA请求产生。STM32的ADC模块结构如图7-2所示。ADC3只存在于大容量产品中。ADC相关引脚有:1)模拟电源VDDA:等效于VDD的模拟电源且2.4V≤VDDA≤VDD(3.6V)。2)模拟电源地VSSA:等效于Vss的模拟电源地。3)模拟参考正极VREF+:ADC使用的高端/正极参考电压,2.4V≤VREF+≤VDDA。4)模拟参考负极VREF-:ADC使用的低端/负极参考电压,VREF-=VSSA。5)模拟信号输入端ADCx_IN[15:0]:16个模拟输入通道。7.3.2STM32的ADC模块结构图7-2ADC模块结构1.ADC开关控制ADC_CR2寄存器的ADON位可给ADC上电。当第一次设置ADON位时,它将ADC从断电状态下唤醒。ADC上电延迟一段时间后(tSTAB),再次设置ADON位时开始进行转换。通过清除ADON位可以停止转换,并将ADC置于断电模式。在这个模式中,ADC耗电仅几μA。2.ADC时钟由时钟控制器提供的ADCCLK时钟和PCLK2(APB2时钟)同步。RCC控制器为ADC时钟提供一个专用的可编程预分频器。7.3.3STM32的ADC配置3.通道选择有16个多路通道。可以把转换组织成两组:规则组和注入组。规则组:由多达16个转换通道组成。对一组指定的通道,按照指定的顺序,逐个转换这组通道,转换结束后,再从头循环;这些指定的通道组就称为规则组。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数应写入ADC_SQRI寄存器的L[3:0]位中。注入组:由多达4个转换通道组成。在实际应用中,有可能需要临时中断规则组的转换,对某些通道进行转换,这些需要中断规则组而进行转换的通道组,就称为注入通道组,简称注入组。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。4.单次转换模式在单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动,也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。一旦选择通道的转换完成:1)如果一个规则通道转换完成,则转换数据储存在16位ADC_DR寄存器中;EOC(转换结束)标志置位;如果设置了EOCIE,则产生中断。2)如果一个注入通道转换完成,则转换数据储存在16位的ADC_DRJ1寄存器中;JEOC(注入转换结束)标志置位;如果设置了JEOCIE位,则产生中断。然后ADC停止。5.连续转换模式在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。每次转换后:1)如果一个规则通道转换完成,则转换数据存储在16位的ADC_DR寄存器中;EOC(转换结束)标志置位;如果设置了EOCIE,则产生中断。2)如果一个注入通道转换完成,则转换数据储存在16位的ADC_DRJ1寄存器中;JEOC(注入转换结束)标志置位;如果设置了JEOCIE位,则产生中断。6.时序图ADC转换时序图如图7-3所示,ADC在开始精确转换前需要一个稳定时间tSTAB,在开始ADC转换14个时钟周期后,EOC标志被设置,16位ADC数据寄存器包含转换后结果。图7-3ADC转换时序图7.模拟看门狗如果被ADC转换的模拟电压低于低阈值或高于高阈值,模拟看门狗AWD的状态位将被置位,如图7-4所示。图7-4模拟看门狗警戒区阈值位于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位以允许产生相应中断。阈值的数据对齐模式与ADC_CR2寄存器中的ALIGN位选择无关。比较是在对齐之前完成的。通过配置ADC_CR1寄存器,模拟看门狗可以作用于一个或多个通道。8.扫描模式此模式用来扫描一组模拟通道。扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。一旦这个位被设置,ADC就扫描所有被ADC_SQRX寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。如果设置了CONT位,转换不组的最一个通道停止,而是再次从选择组的第一个通道继续转换。如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。而注入通道转换的数据总是存储在ADC_JDRx寄存器中。9.注入通道管理1)触发注入清除ADC_CR1寄存器的JAUTO位,并设置SCAN位,即可使用触发注入功能。过程如下:(1)利用外部触发或通过设置ADC_CR2寄存器的ADON位,启动一组规则通道的转换。(2)如果在规则通道转换期间产生一外部注入触发,当前转换被复位,注入通道序列被以单次扫描方式进行转换。(3)然后,恢复上次被中断的规则组通道转换。如果在注入转换期间产生一个规则事件,则注入转换不会被中断,但是规则序列将在注入序列结束后被执行。触发注入转换时序图如图7-5所示。图7-5触发注入转换时序图注(1):最大延迟数值请参考数据手册中有关电气特性部分。当使用触发注入转换时,必须保证触发事件的间隔长于注入序列。例如,序列长度为28个ADC时钟周期(即2个具有1.5个时钟间隔采样时间的转换),触发之间最小的间隔必须是29个ADC时钟周期。2)自动注入如果设置了JAUTO位,在规则组通道之后,注入组通道被自动转换。这种方式可以用来转换在ADC_SQRx和ADC_JSQR寄存器中设置的多至20个转换序列。在该模式中,必须禁止注入通道的外部触发。如果除JAUTO位外还设置了CONT位,规则通道至注入通道的转换序列被连续执行。对于ADC时钟预分频系数为4~8时,当从规则转换切换到注入序列或从注入转换切换到规则序列时,会自动插入1个ADC时钟间隔;当ADC时钟预分频系数为2时,则有2个ADC时钟间隔的延迟。不可能同时使用自动注入和间断模式。10.间断模式1)规则组此模式通过设置ADC_CR1寄存器上的DISCEN位激活,可以用来执行一个短序列的n次转换(n≤8),此转换是ADC_SQRx寄存器所选择的转换序列的一部分。数值,由ADC_CR1寄存器的DISCNUM[2:0]位给出。一个外部触发信号可以启动ADC_SQRx寄存器中描述的下一轮n次转换,直到此序列所有的转换完成为止。总的序列长度由ADC_SQR1寄存器的L[3:0]定义。例如:若n=3,被转换的通道=0、1、2、3、6、7、9、10,则:第1次触发:转换的序列为0、1、2。第2次触发:转换的序列为3、6、7。第3次触发:转换的序列为9、10,并产生EOC事件。第4次触发:转换的序列0、1、2。当以间断模式转换一个规则组时,转换序列结束后并不自动从头开始。当所有子组被转换完成,下一次触发启动第一个子组的转换。例如,在上面的例子中,第四次触发重新转换第一子组的通道0、1和2。2)注入组此模式通过设置ADC_CR1寄存器的JDISCEN位激活。在一个外部触发事件后,该模式按通道顺序逐个转换ADC_JSQR寄存器中选择的序列。一个外部触发信号可以启动ADC_JSQR寄存器选择的下一个通道序列的转换,直到序列中所有的转换完成为止。总的序列长度由ADC_JSQR寄存器的JL[1:0]位定义。例如:若n=1,被转换的通道=1、2、3,则第1次触发:通道1被转换。第2次触发:通道2被转换。第3次触发:通道3被转换,并且产生EOC和JEOC事件。第4次触发:通道1被转换。注意:①当完成所有注入通道转换,下个触发启动第一个注入通道的转换。在上述例子中,第四次触发重新转换第一个注入通道1。②不能同时使用自动注入和间断模式。③必须避免同时为规则和注入组设置间断模式。间断模式只能作用于一组转换。1.校准ADC有一个内置自校准模式。校准可大幅度减小因内部电容器组的变化而造成的精度误差。在校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差。通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束,CAL位被硬件复位,可以开始正常转换。建议在每次上电后执行一次ADC校准。启动校准前,ADC必须处于关电状态(ADON=0)至少两个ADC时钟周期。校准阶段结束后,校准码储存在ADC_DR中。ADC校准时序图如图7-6所示。7.3.4STM32的ADC应用特征图7-6ADC校准时序图2.数据对齐ADC_CR2寄存器中的ALIGN位选择转换后数据储存的对齐方式。数据可以左对齐或右对齐,如图7-7和图7-8所示。图7-7数据右对齐图7-8数据左对齐注入组通道转换的数据值已经减去了ADC_JOFRx寄存器中定义的偏移量,因此结果可以是一个负值。SEXT位是扩展的符号值。对于规则组通道,不需要减去偏移值,因此只有12个位有效。3.可编程的通道采样时间ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位更改。每个通道可以分别用不同的时间采样。总转换时间按式(7-1)计算:TCONV=采样时间+12.5个周期(7-1)例如,当ADCCLK=14MHz,采样时间为1.5周期时,TCONV=1.5+12.5=14个周期=lus。4.外部触发转换可以由外部事件触发(例如定时器捕获、EXTI线)。如果设置了EXTTRIG控制位,则外部事件就能够触发转换,EXTSEL[2:0]和JEXTSEL[2:0]控制位允许应用程序8个可能事件中的一个,可以触发规则组和注入组的采样。5.DMA请求因为规则通道转换的值存储在一个相同的数据寄存器ADC_DR中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。注:只有ADC1和ADC3拥有DMA功能。由ADC2转换的数据可以通过双ADC模式,利用ADC1的DMA功能传输。6.双ADC模式在有2个或以上ADC模块的产品中,可以使用双ADC模式,双ADC框图如图10-11所示。在双ADC模式下,根据ADC1_CR1寄存器中DUALMOD[2:0]位所选的模式,转换的启动可以是ADC1主和ADC2从的交替触发或同步触发。在双ADC模式下,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外触发从转换。但是,主和从ADC的外部触发必须同时被激活。共有6种可能的模式:同步注入模式、同步规则模式、快速交叉模式、慢速交叉模式、交替触发模式和独立模式。还有可以用下列方式组合使用上面的模式:(1)同步注入模式+同步规则模式;(2)同步规则模式+交替触发模式;(3)同步注入模式+交叉模式。在双ADC模式下,为了在主数据寄存器上读取从转换数据,必须使能DMA位,即使不使用DMA传输规则通道数据。7.4ADC库函数STM32标准库中提供了几乎覆盖所有ADC操作的函数,如表7-5所示,所有ADC相关函数均在stm32f10x_adc.c和stm32f10x_adc.h中进行定义和声明。为了理解这些函数的具体使用方法,本节对标准库中部分函数做详细介绍。表7-5ADC库函数函数名称功能ADC_DeInit将外设ADCx的全部寄存器重设为缺省值ADC_Init根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器ADC_StructInit把ADC_InitStruct中的每一个参数按缺省值填入ADC_Cmd使能或者失能指定的ADCADC_DMACmd使能或者失能指定的ADC的DMA请求ADC_ITConfig使能或者失能指定的ADC的中断ADC_ResetCalibration重置指定的ADC的校准寄存器ADC_GetResetCalibrationStatus获取ADC重置校准寄存器的状态ADC_StartCalibration开始指定ADC的校准程序ADC_GetCalibrationStatus获取指定ADC的校准状态ADC_SoftwareStartConvCmd使能或者失能指定的ADC的软件转换启动功能ADC_GetSoftwareStartConvStatus获取ADC软件转换启动状态ADC_DiscModeChannelCountConfig对ADC规则组通道配置间断模式ADC_DiscModeCmd使能或者失能指定的ADC规则组通道的间断模式ADC_RegularChannelConfig设置指定ADC的规则组通道,设置它们的转化顺序和采样时间ADC_ExternalTrigConvConfig使能或者失能ADCx的经外部触发启动转换功能ADC_GetConversionValue得到最近一次ADCx规则组的转换结果ADC_GetDuelModeConversionValue得到最近一次双ADC模式下的转换结果ADC_AutoInjectedConvCmd使能或者失能指定ADC在规则组转化后自动开始注入组转换表7-5ADC库函数(续表)函数名称功能ADC_InjectedDiscModeCmd使能或者失能指定ADC的注入组间断模式ADC_ExternalTrigInjectedConvConfig配置ADCx的外部触发启动注入组转换功能ADC_ExternalTrigInjectedConvCmd使能或者失能ADCx的经外部触发启动注入组转换功能ADC_SoftwareStartinjectedConvCmd使能或者失能ADCx软件启动注入组转换功能ADC_GetsoftwareStartinjectedConvStatus获取指定ADC的软件启动注入组转换状态ADC_InjectedChannelConfig设置指定ADC的注入组通道,设置它们的转化顺序和采样时间ADC_InjectedSequencerLengthConfig设置注入组通道的转换序列长度ADC_SetinjectedOffset设置注入组通道的转换偏移值ADC_GetInjectedConversionValue返回ADC指定注入通道的转换结果ADC_AnalogWatchdogCmd使能或者失能指定单个/全体,规则/注入组通道上的模拟看门狗ADC_AnalogWatchdogThresholdsConfig设置模拟看门狗的高/低阈值ADC_AnalogWatchdogSingleChannelConfig对单个ADC通道设置模拟看门狗ADC_TampSensorVrefintCmd使能或者失能温度传感器和内部参考电压通道ADC_GetFlagStatus检查制定ADC标志位置1与否ADC_ClearFlag清除ADCx的待处理标志位ADC_GetITStatus检查指定的ADC中断是否发生ADC_ClearITPendingBit清除ADCx的中断待处理位1.函数ADC_DeInit函数名:ADC_DeInit。函数原型:voidADC_DeInit(ADC_TypeDef*ADCx)。功能描述:将外设ADCx的全部寄存器重设为缺省值。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:无。例如:/*ResetsADC2*/ADC_DeInit(ADC2);2.函数ADC_Init函数名:ADC_Init。函数原型:voidADC_Init(ADC_TypeDef*ADCx,ADC_InitTypeDef*ADC_InitStruct)。功能描述:根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器。输入参数1:ADCx,x可以是1、2或3,用来选择ADC外设。输入参数2:ADC_InitStruct,指向结构ADC_InitTypeDef的指针,包含了指定外设ADC的配置信息。输出参数:无。返回值:无。例如:/*InitializetheADC1accordingtotheADC_InitStructuremembers*/ADC_InitTypeDefADC_InitStructure;ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode=ENABLE;ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_Ext_IT11;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=16;ADC_Init(ADC1,&ADC_InitStructure);为了能够正确地配置每一个ADC通道,用户在调用ADC_Init()之后,必须调用ADC_ChannelConfig()配置每个所使用通道的转换次序和采样时间。3.函数ADC_RegularChannelConfig函数名:ADC_RegularChannelConfig。函数原型:voidADC_RegularChannelConfig(ADC_TypeDef*ADCx,u8ADC_Channel,u8Rank,u8ADC_SampleTime)。功能描述:设置指定ADC的规则组通道,设置它们的转化顺序和采样时间。输入参数1:ADCx,x可以是1、2或3,用来选择ADC外设。输入参数2:ADC_Channel,被设置的ADC通道。输入参数3:Rank,规则组采样顺序。取值范围1~16。输入参数4:ADC_SampleTime,指定ADC通道的采样时间值,参阅章节ADC_SampleTime,查阅更多该参数允许取值范围。输出参数:无。返回值:无。例如:/*ConfiguresADC1Channel2as:firstconvertedchannelwithan7.5cyclessampletime*/ADC_RegularChanne1Config(ADC1,ADC_Channel_2,1,ADC_SampleTime_7Cycles5);/*ConfiguresADC1Channe18as:secondconvertedchannelwithan1.5cyclessampletime*/ADC_RegularChannelConfig(ADC1,ADC_Channel_B,2,ADC_SampleTime_1Cycles5);4.函数ADC_RegularChannelConfig函数名:ADC_InjectedChannelConfig。函数原型:voidADC_InjectedChannelConfig(ADC_TypeDef*ADCx,u8ADC_Channel,u8Rank,u8ADC_SampleTime)。功能描述:设置指定ADC的注入通道,设置它们的转化顺序和采样时间。输入参数1:ADCx,x可以是1、2或3,用来选择ADC外设。输入参数2:ADC_Channel,被设置的ADC通道。输入参数3:Rank,规则组采样顺序,取值范围1~4。输入参数4:ADC_SampleTime,指定ADC通道的采样时间值,参阅章节ADC_SampleTime,查阅更多该参数允许取值范围。输出参数:无。返回值:无。1)ADC_Channel参数ADC_Channel指定了需设置的ADC通道。2)ADC_SampleTimeADC_SampleTime设定了选中通道的ADC采样时间。例如:/*ConfiguresADC1Channel12as:secondconvertedchannelwithan28.5cyclessampletime*/ADC_InjectedChannelConfig(ADC1,ADC_Channel_12,2,ADC_SampleTime_28Cycles5);5.函数ADC_Cmd函数名:ADC_Cmd。函数原型:ADC_Cmd(ADC_TypeDef*ADCx,FunctionalStateNewState)。功能描述:使能或者失能指定的ADC。输入参数1:ADCx,x可以是1、2或3,用来选择ADC外设。输入参数2:NewState,外设ADCx的新状态,这个参数可以取ENABLE或者DISABLE。输出参数:无。返回值:无。例如:/*EnableADC1*/ADC_Cmd(ADC1,ENABLE);注意:函数ADC_Cmd只能在其他ADC设置函数之后被调用6.函数ADC_ResetCalibration函数名:ADC_ResetCalibration。函数原型:voidADC_ResetCalibration(ADC_TypeDef*ADCx)。功能描述:重置指定的ADC的校准寄存器。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:无。例如:/*ResettheADC1Calibrationregisters*/ADC_ResetCalibration(ADC1);7.函数AD_GetResetCalibrationStatus函数名:ADC_GetResetCalibrationStatus。函数原型:FlagStatusADC_GetResetCalibrationStatus(ADC_TypeDef*ADCx)。功能描述:获取ADC重置校准寄存器的状态。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:ADC重置校准寄存器的新状态(SET或者RESET)。例如:/*GettheADC2resetcalibrationregistersstatus*/FlagStatusStatus;Status=ADC_GetResetCalibrationStatus(ADC2);8.函数ADC_StartCalibration函数名:ADC_StartCalibration。函数原型:voidADC_StartCalibration(ADC_TypeDef*ADCx)。功能描述:开始指定ADC的校准状态。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:无。例如:/*StarttheADC2Calibration*/ADC_StartCalibration(ADC2);9.函数ADC_GetCalibrationStatus函数名:ADC_GetCalibrationStatus。函数原型:FlagStatusADC_GetCalibrationStatus(ADC_TypeDef*ADCx)。功能描述:获取指定ADC的校准程序。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:ADC校准的新状态(SET或者RESET)。例如:/*GettheADC2calibrationstatus*/FlagStatusStatus;Status=ADC_GetCalibrationStatus(ADC2);26210.函数ADC_SoftwareStartConvCmd函数名:ADC_SoftwareStartConvCmd。函数原型:voidADC_SoftwareStartConvCmd(ADC_TypeDef*ADCx,FunctionalStateNewState)。功能描述:使能或者失能指定的ADC的软件转换启动功能。输入参数1:ADCx,x可以是1、2或3,用来选择ADC外设。输入参数2:NewState,指定ADC的软件转换启动新状态,这个参数可以取ENABLE或者DISABLE。输出参数:无。返回值:无。例如:/*StartbysoftwaretheADC1Conversion*/ADC_SoftwareStartConvCmd(ADC1,ENABLE);11.函数ADC_GetConversionValue函数名:ADC_GetConversionValue。函数原型:u16ADC_GetConversionValue(ADC_TypeDef*ADCx)。功能描述:返回最近一次ADCx规则组的转换结果。输入参数:ADCx,x可以是1、2或3,用来选择ADC外设。输出参数:无。返回值:转换结果。例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论