|
STM32 擁有 1~3 個(gè) ADC (STM32F101/102 系列只有 1 個(gè) ADC),這些 ADC 可以獨(dú)立
使用, 也可以使用雙重模式(提高采樣率)。 STM32 的 ADC 是 12 位逐次逼近型的模擬數(shù)
字轉(zhuǎn)換器。它有 18 個(gè)通道,可測(cè)量 16 個(gè)外部和 2 個(gè)內(nèi)部信號(hào)源。各通道的 A/D 轉(zhuǎn)換可
以單次、連續(xù)、掃描或間斷模式執(zhí)行。 ADC 的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在 16 位
數(shù)據(jù)寄存器中。 模擬看門狗特性允許應(yīng)用程序檢測(cè)輸入電壓是否超出用戶定義的高/低閥
值。
STM32F103 系列最少都擁有 2 個(gè) ADC,我們選擇的 STM32F103ZET 包含有 3 個(gè) ADC。
STM32 的 ADC 最大的轉(zhuǎn)換速率為 1Mhz,也就是轉(zhuǎn)換時(shí)間為 1us(在 ADCCLK=14M,采樣周期
為 1.5 個(gè) ADC 時(shí)鐘下得到),不要讓 ADC 的時(shí)鐘超過(guò) 14M,否則將導(dǎo)致結(jié)果準(zhǔn)確度下降。
STM32 將 ADC 的轉(zhuǎn)換分為 2 個(gè)通道組:規(guī)則通道組和注入通道組。規(guī)則通道相當(dāng)于你正常
運(yùn)行的程序,而注入通道呢,就相當(dāng)于中斷。在你程序正常執(zhí)行的時(shí)候,中斷是可以打斷你
的執(zhí)行的。同這個(gè)類似,注入通道的轉(zhuǎn)換可以打斷規(guī)則通道的轉(zhuǎn)換, 在注入通道被轉(zhuǎn)換完
成之后,規(guī)則通道才得以繼續(xù)轉(zhuǎn)換。
通過(guò)一個(gè)形象的例子可以說(shuō)明: 假如你在家里的院子內(nèi)放了 5 個(gè)溫度探頭,室內(nèi)放了
3 個(gè)溫度探頭; 你需要時(shí)刻監(jiān)視室外溫度即可,但偶爾你想看看室內(nèi)的溫度;因此你可以
使用規(guī)則通道組循環(huán)掃描室外的 5 個(gè)探頭并顯示 AD 轉(zhuǎn)換結(jié)果,當(dāng)你想看室內(nèi)溫度時(shí),通
過(guò)一個(gè)按鈕啟動(dòng)注入轉(zhuǎn)換組(3 個(gè)室內(nèi)探頭)并暫時(shí)顯示室內(nèi)溫度,當(dāng)你放開這個(gè)按鈕后,系
統(tǒng)又會(huì)回到規(guī)則通道組繼續(xù)檢測(cè)室外溫度。從系統(tǒng)設(shè)計(jì)上,測(cè)量并顯示室內(nèi)溫度的過(guò)程中斷
了測(cè)量并顯示室外溫度的過(guò)程,但程序設(shè)計(jì)上可以在初始化階段分別設(shè)置好不同的轉(zhuǎn)換組,
系統(tǒng)運(yùn)行中不必再變更循環(huán)轉(zhuǎn)換的配置,從而達(dá)到兩個(gè)任務(wù)互不干擾和快速切換的結(jié)果?
以設(shè)想一下,如果沒有規(guī)則組和注入組的劃分,當(dāng)你按下按鈕后,需要從新配置 AD 循環(huán)掃
描的通道,然后在釋放按鈕后需再次配置 AD 循環(huán)掃描的通道。
上面的例子因?yàn)樗俣容^慢,不能完全體現(xiàn)這樣區(qū)分(規(guī)則通道組和注入通道組)的好處,
但在工業(yè)應(yīng)用領(lǐng)域中有很多檢測(cè)和監(jiān)視探頭需要較快地處理,這樣對(duì) AD 轉(zhuǎn)換的分組將簡(jiǎn)化
事件處理的程序并提高事件處理的速度。
STM32 其 ADC 的規(guī)則通道組最多包含 16 個(gè)轉(zhuǎn)換,而注入通道組最多包含 4 個(gè)通道。
關(guān)于這兩個(gè)通道組的詳細(xì)介紹,請(qǐng)參考《STM32 參考手冊(cè)的》第 155 頁(yè),第 11 章。 STM32
的 ADC 可以進(jìn)行很多種不同的轉(zhuǎn)換模式,這些模式在《STM32 參考手冊(cè)》的第 11 章也都
有詳細(xì)介紹,我們這里就不在一一列舉了。我們本章僅介紹如何使用規(guī)則通道的單次轉(zhuǎn)換模
式。
STM32 的 ADC 在單次轉(zhuǎn)換模式下,只執(zhí)行一次轉(zhuǎn)換,該模式可以通過(guò) ADC_CR2 寄存器
的 ADON 位(只適用于規(guī)則通道)啟動(dòng),也可以通過(guò)外部觸發(fā)啟動(dòng)(適用于規(guī)則通道和注入
通道),這是 CONT 位為 0。以規(guī)則通道為例,一旦所選擇的通道轉(zhuǎn)換完成,轉(zhuǎn)換結(jié)果將被
存在 ADC_DR 寄存器中, EOC(轉(zhuǎn)換結(jié)束)標(biāo)志將被置位, 如果設(shè)置了 EOCIE,則會(huì)產(chǎn)生中
斷。然后 ADC 將停止,直到下次啟動(dòng)。
|
|