stm32的ADC之規(guī)則組和注入組
有2種劃分轉換組的方式:規(guī)則通道組和注入通道組。通常規(guī)則通道組中可以安排最多16個通道,而注入通道組可以安排最多4個通道。
在執(zhí)行規(guī)則通道組掃描轉換時,如有例外處理則可啟用注入通道組的轉換。
一個不太恰當的比喻是:規(guī)則通道組的轉換好比是程序的正常執(zhí)行,而注入通道組的轉換則好比是程序正常執(zhí)行之外的一個中斷處理程序。
--------------------------------------------------------------------------------
再舉一個不一定使用的例子:
假如你在家里的院子內放了5個溫度探頭,室內放了3個溫度探頭;你需要時刻監(jiān)視室外溫度即可,但偶爾你想看看室內的溫度;因此你可以使用規(guī)則通道組循環(huán)掃描室外的5個探頭并顯示AD轉換結果,當你想看室內溫度時,通過一個按鈕啟動注入轉換組(3個室內探頭)并暫時顯示室內溫度,當你放開這個按鈕后,系統(tǒng)又會回到規(guī)則通道組繼續(xù)檢測室外溫度。
從系統(tǒng)設計上,測量并顯示室內溫度的過程中斷了測量并顯示室外溫度的過程,但程序設計上可以在初始化階段分別設置好不同的轉換組,系統(tǒng)運行中不必再變更循環(huán)轉換的配置,從而達到兩個任務互不干擾和快速切換的結果。可以設想一下,如果沒有規(guī)則組和注入組的劃分,當你按下按鈕后,需要從新配置AD循環(huán)掃描的通道,然后在施放按鈕后需再次配置AD循環(huán)掃描的通道。
--------------------------------------------------------------------------------
上面的例子因為速度較慢,不能完全體現這樣區(qū)分(規(guī)則組和注入組)的好處,但在工業(yè)應用領域中有很多檢測和監(jiān)視探頭需要較快地處理,這樣對AD轉換的分組將簡化事件處理的程序并提高事件處理的速度。
【轉自】http://bbs.***.com/viewthread.php?tid=561&highlight=%E6%B3%A8%E5%85%A5%E7%BB%84
規(guī)則組由多達16個轉換組成。規(guī)則通道和它們的轉換順序在ADC_SQRx寄存器中選擇。規(guī)則組中轉換的總數寫入ADC_SQR1寄存器的L[3:0]位中。
注入組由多達4個轉換組成。注入通道和它們的轉換順序在ADC_JSQR寄存器中選擇。注入組里的轉換總數目寫入ADC_JSQR寄存器的L[1:0]位中。
如果規(guī)則轉換已經在運行,為了在注入轉換后確保同步,所有的ADC(主和從)的規(guī)則轉換被停止,并在注入轉換結束時同步恢復,見圖示。

(原文件名:5d24120047e4ca496ccb1&690.jpg)引用圖片
規(guī)則轉換和注入轉換均有外部觸發(fā)選項,規(guī)則通道轉換期間有DMA請求產生,而注入轉換則無DMA請求,需要用查詢或中斷的方式保存轉換的數據。
還有一個需注意的是:
規(guī)則通道序列長度(ADC_SQR1L)的設置值,是規(guī)則通道序列轉換總數數-1,DMA設置則是規(guī)則序列轉換總數
注入通道序列長度(ADC_JSQRJL)的設置值,是注入通道序列轉換總數數-1。
評論