版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第7章模/數(shù)轉換器(ADC)本章講述了模/數(shù)(A/D)轉換器,包括模擬量輸入通道、模擬量輸入信號類型與量程自動轉換、STM32F103VET6集成的ADC模塊、ADC庫函數(shù)、ADC使用流程和模/數(shù)(A/D)轉換器應用實例。7.1模擬量輸入通道當計算機用作測控系統(tǒng)時,系統(tǒng)總要有被測量信號的輸入通道,由計算機拾取必要的輸入信息,對于測量系統(tǒng)而言,如何準確獲取被測信號是其核心任務;而對測控系統(tǒng)來講,對被控對象狀態(tài)的測試和對控制條件的監(jiān)察也是不可缺少的環(huán)節(jié)。系統(tǒng)需要的被測信號,一般可分為開關量和模擬量二種。所謂開關量輸入,是指輸入信號為狀態(tài)信號,其信號電平只有二種,即高電平或低電平。對于這類信號,只需經(jīng)放大、整形和電平轉換等處理后,即可直接送入計算機系統(tǒng)。對于模擬量輸入,由于模擬信號的電壓或電流是連續(xù)變化信號,其信號幅度在任何時刻都有定義,因此對其進行處理就較為復雜,在進行小信號放大、濾波量化等處理過程中需考慮干擾信號的抑制、轉換精度及線性等諸多因素;而這種信號又是測控系統(tǒng)中最普通、最常碰到的輸入信號,如對溫度、濕度、壓力、流量、液位、氣體成份等信號的處理等。圖7-1模擬量輸入通道的組成模擬量輸入通道根據(jù)應用要求的不同,可以有不同的結構形式。圖7-1是多路模擬量輸入通道的組成框圖。從圖7-1可看出,模擬量輸入通道一般由信號處理、模擬開關、放大器、采樣—保持器和A/D轉換器組成。根據(jù)需要,信號處理可選擇的內(nèi)容包括小信號放大、信號濾波、信號衰減、阻抗匹配、電平變換、非線性補償、電流/電壓轉換等。7.2模擬量輸入信號類型與量程自動轉換在接到一個具體的測控任務后,需根據(jù)被測控對象選擇合適的傳感器,從而完成非電物理量到電量的轉換,經(jīng)傳感器轉換后的量,如電流、電壓等,往往信號幅度很小,很難直接進行模數(shù)轉換,因此,需對這些模擬電信號進行幅度處理和完成阻抗匹配、波形變換、噪聲的抑制等要求,而這些工作需要放大器完成。模擬量輸入信號主要有以下兩類:
7.2.1模擬量輸入信號類型第一類為傳感器輸出的信號,如:⑴電壓信號:一般為mV信號,如熱電偶(TC)的輸出或電橋輸出。⑵電阻信號:單位為Ω,如熱電阻(RTD)信號,通過電橋轉換成mV信號。⑶電流信號:一般為μA信號,如電流型集成溫度傳感器AD590的輸出信號,通過取樣電阻轉換成mV信號。對于以上這些信號往往不能直接送A-D轉換,因為信號的幅值太小,需經(jīng)運算放大器放大后,變換成標準電壓信號,如0~5V,1~5V,0~10V,-5V~+5V等,送往A-D轉換器進行采樣。有些雙積分A-D轉換器的輸入為-200mV~+200mV或-2V~+2V,有些A-D轉換器內(nèi)部帶有程控增益放大器(PGA),可直接接受mV信號。第二類為變送器輸出的信號,如:⑴電流信號:0~10mA(0~1.5kΩ負載)或4~20mA(0~500Ω負載)。⑵電壓信號:0~5V或1~5V等。電流信號可以遠傳,通過一個標準精密取樣電阻就可以變成標準電壓信號,送往A-D轉換器進行采樣,這類信號一般不需要放大處理。
由于傳感器所提供的信號變化范圍很寬(從微伏到伏),特別是在多回路檢測系統(tǒng)中,當各回路的參數(shù)信號不一樣時,必須提供各種量程的放大器,才能保證送到計算機的信號一致(如0~5V)。在模擬系統(tǒng)中,為了放大不同的信號,需要使用不同倍數(shù)的放大器。而在電動單位組合儀表中,常常使用各種類型的變送器,如溫度變送器、差壓變送器、位移變送器等。但是,這種變送器造價比較貴,系統(tǒng)也比較復雜。隨著計算機的應用,為了減少硬件設備,已經(jīng)研制出可編程增益放大器(ProgrammableGainAmplifier),簡稱PGA。它是一種通用性很強的放大器,其放大倍數(shù)可根據(jù)需要用程序進行控制。采用這種放大器,可通過程序調(diào)節(jié)放大倍數(shù),使A/D轉換器滿量程信號達到均一化,因而大大提高測量精度。這就是量程自動轉換。7.2.2量程自動轉換7.3STM32F103VET6集成的ADC模塊STM32F103VET6微控制器集成有18路12位高速逐次逼近型模數(shù)轉換器(ADC),可測量16個外部和2個內(nèi)部信號源。各通道的A/D轉換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結果可以左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器中。模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定義的高/低閾值。ADC的輸入時鐘不得超過14MHz,由PCLK2經(jīng)分頻產(chǎn)生。1)12位分辨率。2)轉換結束、注入轉換結束和發(fā)生模擬看門狗事件時產(chǎn)生中斷。3)單次和連續(xù)轉換模式。4)從通道0到通道n的自動掃描模式。5)自校準功能。6)帶內(nèi)嵌數(shù)據(jù)一致性的數(shù)據(jù)對齊。7)采樣間隔可以按通道分別編程。8)規(guī)則轉換和注入轉換均有外部觸發(fā)選項。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)規(guī)則通道轉換期間有DMA請求產(chǎn)生。STM32的ADC模塊結構如圖7-2所示。ADC3只存在于大容量產(chǎn)品中。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上電。當?shù)谝淮卧O置ADON位時,它將ADC從斷電狀態(tài)下喚醒。ADC上電延遲一段時間后(tSTAB),再次設置ADON位時開始進行轉換。通過清除ADON位可以停止轉換,并將ADC置于斷電模式。在這個模式中,ADC耗電僅幾μA。2.ADC時鐘由時鐘控制器提供的ADCCLK時鐘和PCLK2(APB2時鐘)同步。RCC控制器為ADC時鐘提供一個專用的可編程預分頻器。7.3.3STM32的ADC配置3.通道選擇有16個多路通道??梢园艳D換組織成兩組:規(guī)則組和注入組。規(guī)則組:由多達16個轉換通道組成。對一組指定的通道,按照指定的順序,逐個轉換這組通道,轉換結束后,再從頭循環(huán);這些指定的通道組就稱為規(guī)則組。例如,可以如下順序完成轉換:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。規(guī)則通道和它們的轉換順序在ADC_SQRx寄存器中選擇。規(guī)則組中轉換的總數(shù)應寫入ADC_SQRI寄存器的L[3:0]位中。注入組:由多達4個轉換通道組成。在實際應用中,有可能需要臨時中斷規(guī)則組的轉換,對某些通道進行轉換,這些需要中斷規(guī)則組而進行轉換的通道組,就稱為注入通道組,簡稱注入組。注入通道和它們的轉換順序在ADC_JSQR寄存器中選擇。注入組里的轉換總數(shù)目應寫入ADC_JSQR寄存器的L[1:0]位中。4.單次轉換模式在單次轉換模式下,ADC只執(zhí)行一次轉換。該模式既可通過設置ADC_CR2寄存器的ADON位(只適用于規(guī)則通道)啟動,也可通過外部觸發(fā)啟動(適用于規(guī)則通道或注入通道),這時CONT位為0。一旦選擇通道的轉換完成:1)如果一個規(guī)則通道轉換完成,則轉換數(shù)據(jù)儲存在16位ADC_DR寄存器中;EOC(轉換結束)標志置位;如果設置了EOCIE,則產(chǎn)生中斷。2)如果一個注入通道轉換完成,則轉換數(shù)據(jù)儲存在16位的ADC_DRJ1寄存器中;JEOC(注入轉換結束)標志置位;如果設置了JEOCIE位,則產(chǎn)生中斷。然后ADC停止。5.連續(xù)轉換模式在連續(xù)轉換模式中,當前面ADC轉換一結束馬上就啟動另一次轉換。此模式可通過外部觸發(fā)啟動或通過設置ADC_CR2寄存器上的ADON位啟動,此時CONT位是1。每次轉換后:1)如果一個規(guī)則通道轉換完成,則轉換數(shù)據(jù)存儲在16位的ADC_DR寄存器中;EOC(轉換結束)標志置位;如果設置了EOCIE,則產(chǎn)生中斷。2)如果一個注入通道轉換完成,則轉換數(shù)據(jù)儲存在16位的ADC_DRJ1寄存器中;JEOC(注入轉換結束)標志置位;如果設置了JEOCIE位,則產(chǎn)生中斷。6.時序圖ADC轉換時序圖如圖7-3所示,ADC在開始精確轉換前需要一個穩(wěn)定時間tSTAB,在開始ADC轉換14個時鐘周期后,EOC標志被設置,16位ADC數(shù)據(jù)寄存器包含轉換后結果。圖7-3ADC轉換時序圖7.模擬看門狗如果被ADC轉換的模擬電壓低于低閾值或高于高閾值,模擬看門狗AWD的狀態(tài)位將被置位,如圖7-4所示。圖7-4模擬看門狗警戒區(qū)閾值位于ADC_HTR和ADC_LTR寄存器的最低12個有效位中。通過設置ADC_CR1寄存器的AWDIE位以允許產(chǎn)生相應中斷。閾值的數(shù)據(jù)對齊模式與ADC_CR2寄存器中的ALIGN位選擇無關。比較是在對齊之前完成的。通過配置ADC_CR1寄存器,模擬看門狗可以作用于一個或多個通道。8.掃描模式此模式用來掃描一組模擬通道。掃描模式可通過設置ADC_CR1寄存器的SCAN位來選擇。一旦這個位被設置,ADC就掃描所有被ADC_SQRX寄存器(對規(guī)則通道)或ADC_JSQR(對注入通道)選中的所有通道。在每個組的每個通道上執(zhí)行單次轉換。在每個轉換結束時,同一組的下一個通道被自動轉換。如果設置了CONT位,轉換不組的最一個通道停止,而是再次從選擇組的第一個通道繼續(xù)轉換。如果設置了DMA位,在每次EOC后,DMA控制器把規(guī)則組通道的轉換數(shù)據(jù)傳輸?shù)絊RAM中。而注入通道轉換的數(shù)據(jù)總是存儲在ADC_JDRx寄存器中。9.注入通道管理1)觸發(fā)注入清除ADC_CR1寄存器的JAUTO位,并設置SCAN位,即可使用觸發(fā)注入功能。過程如下:(1)利用外部觸發(fā)或通過設置ADC_CR2寄存器的ADON位,啟動一組規(guī)則通道的轉換。(2)如果在規(guī)則通道轉換期間產(chǎn)生一外部注入觸發(fā),當前轉換被復位,注入通道序列被以單次掃描方式進行轉換。(3)然后,恢復上次被中斷的規(guī)則組通道轉換。如果在注入轉換期間產(chǎn)生一個規(guī)則事件,則注入轉換不會被中斷,但是規(guī)則序列將在注入序列結束后被執(zhí)行。觸發(fā)注入轉換時序圖如圖7-5所示。圖7-5觸發(fā)注入轉換時序圖注(1):最大延遲數(shù)值請參考數(shù)據(jù)手冊中有關電氣特性部分。當使用觸發(fā)注入轉換時,必須保證觸發(fā)事件的間隔長于注入序列。例如,序列長度為28個ADC時鐘周期(即2個具有1.5個時鐘間隔采樣時間的轉換),觸發(fā)之間最小的間隔必須是29個ADC時鐘周期。2)自動注入如果設置了JAUTO位,在規(guī)則組通道之后,注入組通道被自動轉換。這種方式可以用來轉換在ADC_SQRx和ADC_JSQR寄存器中設置的多至20個轉換序列。在該模式中,必須禁止注入通道的外部觸發(fā)。如果除JAUTO位外還設置了CONT位,規(guī)則通道至注入通道的轉換序列被連續(xù)執(zhí)行。對于ADC時鐘預分頻系數(shù)為4~8時,當從規(guī)則轉換切換到注入序列或從注入轉換切換到規(guī)則序列時,會自動插入1個ADC時鐘間隔;當ADC時鐘預分頻系數(shù)為2時,則有2個ADC時鐘間隔的延遲。不可能同時使用自動注入和間斷模式。10.間斷模式1)規(guī)則組此模式通過設置ADC_CR1寄存器上的DISCEN位激活,可以用來執(zhí)行一個短序列的n次轉換(n≤8),此轉換是ADC_SQRx寄存器所選擇的轉換序列的一部分。數(shù)值,由ADC_CR1寄存器的DISCNUM[2:0]位給出。一個外部觸發(fā)信號可以啟動ADC_SQRx寄存器中描述的下一輪n次轉換,直到此序列所有的轉換完成為止。總的序列長度由ADC_SQR1寄存器的L[3:0]定義。例如:若n=3,被轉換的通道=0、1、2、3、6、7、9、10,則:第1次觸發(fā):轉換的序列為0、1、2。第2次觸發(fā):轉換的序列為3、6、7。第3次觸發(fā):轉換的序列為9、10,并產(chǎn)生EOC事件。第4次觸發(fā):轉換的序列0、1、2。當以間斷模式轉換一個規(guī)則組時,轉換序列結束后并不自動從頭開始。當所有子組被轉換完成,下一次觸發(fā)啟動第一個子組的轉換。例如,在上面的例子中,第四次觸發(fā)重新轉換第一子組的通道0、1和2。2)注入組此模式通過設置ADC_CR1寄存器的JDISCEN位激活。在一個外部觸發(fā)事件后,該模式按通道順序逐個轉換ADC_JSQR寄存器中選擇的序列。一個外部觸發(fā)信號可以啟動ADC_JSQR寄存器選擇的下一個通道序列的轉換,直到序列中所有的轉換完成為止??偟男蛄虚L度由ADC_JSQR寄存器的JL[1:0]位定義。例如:若n=1,被轉換的通道=1、2、3,則第1次觸發(fā):通道1被轉換。第2次觸發(fā):通道2被轉換。第3次觸發(fā):通道3被轉換,并且產(chǎn)生EOC和JEOC事件。第4次觸發(fā):通道1被轉換。注意:①當完成所有注入通道轉換,下個觸發(fā)啟動第一個注入通道的轉換。在上述例子中,第四次觸發(fā)重新轉換第一個注入通道1。②不能同時使用自動注入和間斷模式。③必須避免同時為規(guī)則和注入組設置間斷模式。間斷模式只能作用于一組轉換。1.校準ADC有一個內(nèi)置自校準模式。校準可大幅度減小因內(nèi)部電容器組的變化而造成的精度誤差。在校準期間,在每個電容器上都會計算出一個誤差修正碼(數(shù)字值),這個碼用于消除在隨后的轉換中每個電容器上產(chǎn)生的誤差。通過設置ADC_CR2寄存器的CAL位啟動校準。一旦校準結束,CAL位被硬件復位,可以開始正常轉換。建議在每次上電后執(zhí)行一次ADC校準。啟動校準前,ADC必須處于關電狀態(tài)(ADON=0)至少兩個ADC時鐘周期。校準階段結束后,校準碼儲存在ADC_DR中。ADC校準時序圖如圖7-6所示。7.3.4STM32的ADC應用特征圖7-6ADC校準時序圖2.數(shù)據(jù)對齊ADC_CR2寄存器中的ALIGN位選擇轉換后數(shù)據(jù)儲存的對齊方式。數(shù)據(jù)可以左對齊或右對齊,如圖7-7和圖7-8所示。圖7-7數(shù)據(jù)右對齊圖7-8數(shù)據(jù)左對齊注入組通道轉換的數(shù)據(jù)值已經(jīng)減去了ADC_JOFRx寄存器中定義的偏移量,因此結果可以是一個負值。SEXT位是擴展的符號值。對于規(guī)則組通道,不需要減去偏移值,因此只有12個位有效。3.可編程的通道采樣時間ADC使用若干個ADC_CLK周期對輸入電壓采樣,采樣周期數(shù)目可以通過ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位更改。每個通道可以分別用不同的時間采樣??傓D換時間按式(7-1)計算:TCONV=采樣時間+12.5個周期(7-1)例如,當ADCCLK=14MHz,采樣時間為1.5周期時,TCONV=1.5+12.5=14個周期=lus。4.外部觸發(fā)轉換可以由外部事件觸發(fā)(例如定時器捕獲、EXTI線)。如果設置了EXTTRIG控制位,則外部事件就能夠觸發(fā)轉換,EXTSEL[2:0]和JEXTSEL[2:0]控制位允許應用程序8個可能事件中的一個,可以觸發(fā)規(guī)則組和注入組的采樣。5.DMA請求因為規(guī)則通道轉換的值存儲在一個相同的數(shù)據(jù)寄存器ADC_DR中,所以當轉換多個規(guī)則通道時需要使用DMA,這可以避免丟失已經(jīng)存儲在ADC_DR寄存器中的數(shù)據(jù)。只有在規(guī)則通道的轉換結束時才產(chǎn)生DMA請求,并將轉換的數(shù)據(jù)從ADC_DR寄存器傳輸?shù)接脩糁付ǖ哪康牡刂?。注:只有ADC1和ADC3擁有DMA功能。由ADC2轉換的數(shù)據(jù)可以通過雙ADC模式,利用ADC1的DMA功能傳輸。6.雙ADC模式在有2個或以上ADC模塊的產(chǎn)品中,可以使用雙ADC模式,雙ADC框圖如圖10-11所示。在雙ADC模式下,根據(jù)ADC1_CR1寄存器中DUALMOD[2:0]位所選的模式,轉換的啟動可以是ADC1主和ADC2從的交替觸發(fā)或同步觸發(fā)。在雙ADC模式下,當轉換配置成由外部事件觸發(fā)時,用戶必須將其設置成僅觸發(fā)主ADC,從ADC設置成軟件觸發(fā),這樣可以防止意外觸發(fā)從轉換。但是,主和從ADC的外部觸發(fā)必須同時被激活。共有6種可能的模式:同步注入模式、同步規(guī)則模式、快速交叉模式、慢速交叉模式、交替觸發(fā)模式和獨立模式。還有可以用下列方式組合使用上面的模式:(1)同步注入模式+同步規(guī)則模式;(2)同步規(guī)則模式+交替觸發(fā)模式;(3)同步注入模式+交叉模式。在雙ADC模式下,為了在主數(shù)據(jù)寄存器上讀取從轉換數(shù)據(jù),必須使能DMA位,即使不使用DMA傳輸規(guī)則通道數(shù)據(jù)。7.4ADC庫函數(shù)STM32標準庫中提供了幾乎覆蓋所有ADC操作的函數(shù),如表7-5所示,所有ADC相關函數(shù)均在stm32f10x_adc.c和stm32f10x_adc.h中進行定義和聲明。為了理解這些函數(shù)的具體使用方法,本節(jié)對標準庫中部分函數(shù)做詳細介紹。表7-5ADC庫函數(shù)函數(shù)名稱功能ADC_DeInit將外設ADCx的全部寄存器重設為缺省值ADC_Init根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設ADCx的寄存器ADC_StructInit把ADC_InitStruct中的每一個參數(shù)按缺省值填入ADC_Cmd使能或者失能指定的ADCADC_DMACmd使能或者失能指定的ADC的DMA請求ADC_ITConfig使能或者失能指定的ADC的中斷ADC_ResetCalibration重置指定的ADC的校準寄存器ADC_GetResetCalibrationStatus獲取ADC重置校準寄存器的狀態(tài)ADC_StartCalibration開始指定ADC的校準程序ADC_GetCalibrationStatus獲取指定ADC的校準狀態(tài)ADC_SoftwareStartConvCmd使能或者失能指定的ADC的軟件轉換啟動功能ADC_GetSoftwareStartConvStatus獲取ADC軟件轉換啟動狀態(tài)ADC_DiscModeChannelCountConfig對ADC規(guī)則組通道配置間斷模式ADC_DiscModeCmd使能或者失能指定的ADC規(guī)則組通道的間斷模式ADC_RegularChannelConfig設置指定ADC的規(guī)則組通道,設置它們的轉化順序和采樣時間ADC_ExternalTrigConvConfig使能或者失能ADCx的經(jīng)外部觸發(fā)啟動轉換功能ADC_GetConversionValue得到最近一次ADCx規(guī)則組的轉換結果ADC_GetDuelModeConversionValue得到最近一次雙ADC模式下的轉換結果ADC_AutoInjectedConvCmd使能或者失能指定ADC在規(guī)則組轉化后自動開始注入組轉換表7-5ADC庫函數(shù)(續(xù)表)函數(shù)名稱功能ADC_InjectedDiscModeCmd使能或者失能指定ADC的注入組間斷模式ADC_ExternalTrigInjectedConvConfig配置ADCx的外部觸發(fā)啟動注入組轉換功能ADC_ExternalTrigInjectedConvCmd使能或者失能ADCx的經(jīng)外部觸發(fā)啟動注入組轉換功能ADC_SoftwareStartinjectedConvCmd使能或者失能ADCx軟件啟動注入組轉換功能ADC_GetsoftwareStartinjectedConvStatus獲取指定ADC的軟件啟動注入組轉換狀態(tài)ADC_InjectedChannelConfig設置指定ADC的注入組通道,設置它們的轉化順序和采樣時間ADC_InjectedSequencerLengthConfig設置注入組通道的轉換序列長度ADC_SetinjectedOffset設置注入組通道的轉換偏移值ADC_GetInjectedConversionValue返回ADC指定注入通道的轉換結果ADC_AnalogWatchdogCmd使能或者失能指定單個/全體,規(guī)則/注入組通道上的模擬看門狗ADC_AnalogWatchdogThresholdsConfig設置模擬看門狗的高/低閾值ADC_AnalogWatchdogSingleChannelConfig對單個ADC通道設置模擬看門狗ADC_TampSensorVrefintCmd使能或者失能溫度傳感器和內(nèi)部參考電壓通道ADC_GetFlagStatus檢查制定ADC標志位置1與否ADC_ClearFlag清除ADCx的待處理標志位ADC_GetITStatus檢查指定的ADC中斷是否發(fā)生ADC_ClearITPendingBit清除ADCx的中斷待處理位1.函數(shù)ADC_DeInit函數(shù)名:ADC_DeInit。函數(shù)原型:voidADC_DeInit(ADC_TypeDef*ADCx)。功能描述:將外設ADCx的全部寄存器重設為缺省值。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:無。例如:/*ResetsADC2*/ADC_DeInit(ADC2);2.函數(shù)ADC_Init函數(shù)名:ADC_Init。函數(shù)原型:voidADC_Init(ADC_TypeDef*ADCx,ADC_InitTypeDef*ADC_InitStruct)。功能描述:根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設ADCx的寄存器。輸入?yún)?shù)1:ADCx,x可以是1、2或3,用來選擇ADC外設。輸入?yún)?shù)2:ADC_InitStruct,指向結構ADC_InitTypeDef的指針,包含了指定外設ADC的配置信息。輸出參數(shù):無。返回值:無。例如:/*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通道,用戶在調(diào)用ADC_Init()之后,必須調(diào)用ADC_ChannelConfig()配置每個所使用通道的轉換次序和采樣時間。3.函數(shù)ADC_RegularChannelConfig函數(shù)名:ADC_RegularChannelConfig。函數(shù)原型:voidADC_RegularChannelConfig(ADC_TypeDef*ADCx,u8ADC_Channel,u8Rank,u8ADC_SampleTime)。功能描述:設置指定ADC的規(guī)則組通道,設置它們的轉化順序和采樣時間。輸入?yún)?shù)1:ADCx,x可以是1、2或3,用來選擇ADC外設。輸入?yún)?shù)2:ADC_Channel,被設置的ADC通道。輸入?yún)?shù)3:Rank,規(guī)則組采樣順序。取值范圍1~16。輸入?yún)?shù)4:ADC_SampleTime,指定ADC通道的采樣時間值,參閱章節(jié)ADC_SampleTime,查閱更多該參數(shù)允許取值范圍。輸出參數(shù):無。返回值:無。例如:/*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.函數(shù)ADC_RegularChannelConfig函數(shù)名:ADC_InjectedChannelConfig。函數(shù)原型:voidADC_InjectedChannelConfig(ADC_TypeDef*ADCx,u8ADC_Channel,u8Rank,u8ADC_SampleTime)。功能描述:設置指定ADC的注入通道,設置它們的轉化順序和采樣時間。輸入?yún)?shù)1:ADCx,x可以是1、2或3,用來選擇ADC外設。輸入?yún)?shù)2:ADC_Channel,被設置的ADC通道。輸入?yún)?shù)3:Rank,規(guī)則組采樣順序,取值范圍1~4。輸入?yún)?shù)4:ADC_SampleTime,指定ADC通道的采樣時間值,參閱章節(jié)ADC_SampleTime,查閱更多該參數(shù)允許取值范圍。輸出參數(shù):無。返回值:無。1)ADC_Channel參數(shù)ADC_Channel指定了需設置的ADC通道。2)ADC_SampleTimeADC_SampleTime設定了選中通道的ADC采樣時間。例如:/*ConfiguresADC1Channel12as:secondconvertedchannelwithan28.5cyclessampletime*/ADC_InjectedChannelConfig(ADC1,ADC_Channel_12,2,ADC_SampleTime_28Cycles5);5.函數(shù)ADC_Cmd函數(shù)名:ADC_Cmd。函數(shù)原型:ADC_Cmd(ADC_TypeDef*ADCx,F(xiàn)unctionalStateNewState)。功能描述:使能或者失能指定的ADC。輸入?yún)?shù)1:ADCx,x可以是1、2或3,用來選擇ADC外設。輸入?yún)?shù)2:NewState,外設ADCx的新狀態(tài),這個參數(shù)可以取ENABLE或者DISABLE。輸出參數(shù):無。返回值:無。例如:/*EnableADC1*/ADC_Cmd(ADC1,ENABLE);注意:函數(shù)ADC_Cmd只能在其他ADC設置函數(shù)之后被調(diào)用6.函數(shù)ADC_ResetCalibration函數(shù)名:ADC_ResetCalibration。函數(shù)原型:voidADC_ResetCalibration(ADC_TypeDef*ADCx)。功能描述:重置指定的ADC的校準寄存器。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:無。例如:/*ResettheADC1Calibrationregisters*/ADC_ResetCalibration(ADC1);7.函數(shù)AD_GetResetCalibrationStatus函數(shù)名:ADC_GetResetCalibrationStatus。函數(shù)原型:FlagStatusADC_GetResetCalibrationStatus(ADC_TypeDef*ADCx)。功能描述:獲取ADC重置校準寄存器的狀態(tài)。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:ADC重置校準寄存器的新狀態(tài)(SET或者RESET)。例如:/*GettheADC2resetcalibrationregistersstatus*/FlagStatusStatus;Status=ADC_GetResetCalibrationStatus(ADC2);8.函數(shù)ADC_StartCalibration函數(shù)名:ADC_StartCalibration。函數(shù)原型:voidADC_StartCalibration(ADC_TypeDef*ADCx)。功能描述:開始指定ADC的校準狀態(tài)。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:無。例如:/*StarttheADC2Calibration*/ADC_StartCalibration(ADC2);9.函數(shù)ADC_GetCalibrationStatus函數(shù)名:ADC_GetCalibrationStatus。函數(shù)原型:FlagStatusADC_GetCalibrationStatus(ADC_TypeDef*ADCx)。功能描述:獲取指定ADC的校準程序。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:ADC校準的新狀態(tài)(SET或者RESET)。例如:/*GettheADC2calibrationstatus*/FlagStatusStatus;Status=ADC_GetCalibrationStatus(ADC2);26210.函數(shù)ADC_SoftwareStartConvCmd函數(shù)名:ADC_SoftwareStartConvCmd。函數(shù)原型:voidADC_SoftwareStartConvCmd(ADC_TypeDef*ADCx,F(xiàn)unctionalStateNewState)。功能描述:使能或者失能指定的ADC的軟件轉換啟動功能。輸入?yún)?shù)1:ADCx,x可以是1、2或3,用來選擇ADC外設。輸入?yún)?shù)2:NewState,指定ADC的軟件轉換啟動新狀態(tài),這個參數(shù)可以取ENABLE或者DISABLE。輸出參數(shù):無。返回值:無。例如:/*StartbysoftwaretheADC1Conversion*/ADC_SoftwareStartConvCmd(ADC1,ENABLE);11.函數(shù)ADC_GetConversionValue函數(shù)名:ADC_GetConversionValue。函數(shù)原型:u16ADC_GetConversionValue(ADC_TypeDef*ADCx)。功能描述:返回最近一次ADCx規(guī)則組的轉換結果。輸入?yún)?shù):ADCx,x可以是1、2或3,用來選擇ADC外設。輸出參數(shù):無。返回值:轉換結果。例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務策劃咨詢合同
- 集裝箱貨物裝卸服務合同
- 外墻乳膠漆銷售合同
- 高質(zhì)量翻譯服務合同范例
- 物業(yè)服務合同協(xié)議書樣本
- 綠化植物訂購合同
- 高端定制鋼琴購買協(xié)議
- 綜合管理系統(tǒng)購銷合同
- 全面服務代理合同
- 智能醫(yī)療輔助診斷系統(tǒng)
- SH/T 3065-2024 石油化工管式爐急彎彎管工程技術規(guī)范(正式版)
- 2024年《藝術概論》知識考試題庫(附答案)
- GB/T 43878-2024旋挖鉆機截齒
- 《架空輸電線路直升機巡視技術導則》
- 攤位安全責任書
- 《紙質(zhì)文物修復與保護》課件-03紙質(zhì)文物病害類型
- 美育的知與行智慧樹知到期末考試答案2024年
- 老年患者圍術期ERAS護理
- 2024年合肥百姓公共服務云平臺有限公司招聘筆試沖刺題(帶答案解析)
- 沙門菌感染的人工智能與機器學習應用
- 電氣工程及其自動化大學生職業(yè)規(guī)劃
評論
0/150
提交評論