一、總轉換時間的問題:
其中,采樣時間是指完成一次轉換到開始下一次轉換的時間間隔,不包括轉換時間;轉換時間是固定的12.5個周期。采樣時間有幾個固定值可以選擇設定。
二、 ADON:開/關A/D轉換器
該位由軟件設置和清除。當該位為0時,寫入1將把ADC從斷電模式下喚醒。當該位為1時,寫入1將啟動轉換。在轉換器上電至轉換開始有一個延遲時間tSTAB。
函數void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);雖然描述說是使能失能ADC,其實就是對ADON的操作,也就是說,當ADON為0時,該函數為喚醒ADC,當ADON為1時,為啟動轉換。
三、ADC開始轉換的問題
芯片資料有以下兩段話:
“單次轉換模式下,ADC只執行一次轉換。該模式既可通過設置ADC_CR2寄存器的ADON位(只適用于規則通道)啟動,也可通過外部觸發啟動(適用于規則通道或注入通道),這時CONT位為0。
“在連續轉換模式中,當前面ADC轉換一結束馬上就啟動另一次轉換。此模式可通過外部觸發啟動或通過設置ADC_CR2寄存器上的ADON位啟動,此時CONT位是1。”
此處的關鍵點是:單次模式下,注入通道只能用軟件啟動,不能用ADON啟動。但連續模式則可以用這兩個方式啟動。
四、中斷的問題
JEOC:該位由硬件在所有注入通道組轉換結束時設置,由軟件清除
EOC:該位由硬件在(規則或注入)通道組轉換結束時設置,由軟件清除或由讀取ADC_DR時清除
注意點:a、規則和注入都可以產生EOC標志,而JEOC標志只有注入組產生。
b、規則和注入都可以產生EOC中斷,而JEOC中斷只能由注入組產生。
c、JEOC只能軟件清除,硬件不會自動清除,但是EOC在讀取ADC_DR規則數據寄存器時,硬件會自動清除。(這條一定要注意,浪費我半天的時間才找到原因。)