STM32F407 AD設置為右對齊,結果為左對齊的解決方法
在嵌入式系統(tǒng)中,模擬數(shù)字轉換(ADC)是一個非常重要的功能。在使用STM32F407單片機時,我們需要進行ADC設置,而一些初學者可能會遇到AD設置為右對齊,但結果卻是左對齊的問題。此類問題的原因一般
在嵌入式系統(tǒng)中,模擬數(shù)字轉換(ADC)是一個非常重要的功能。在使用STM32F407單片機時,我們需要進行ADC設置,而一些初學者可能會遇到AD設置為右對齊,但結果卻是左對齊的問題。
此類問題的原因一般都是由于沒有正確配置ADC結構體參數(shù)所致。下面將詳細講解如何正確配置ADC結構體參數(shù)以解決該問題。
ADC結構體參數(shù)配置
在使用STM32F407單片機時,需要先初始化ADC相關參數(shù)。這里以ADC1為例,介紹ADC__DataAlign參數(shù)的設置。
ADC__Resolution ADC_Resolution_12b; //12位模式
ADC__ScanConvMode DISABLE; //非掃描模式
ADC__ContinuousConvMode DISABLE; //關閉連續(xù)轉換
ADC__ExternalTrigConvEdge ADC_ExternalTrigConvEdge_None; //禁止觸發(fā)檢測,使用軟件觸發(fā)
ADC__DataAlign ADC_DataAlign_Right; //右對齊
ADC__NbrOfConversion 1; //1個轉換在規(guī)則序列中也就是只轉換規(guī)則序列1
ADC_Init(ADC1, ADC_InitStructure); //ADC初始化
以上是ADC結構體參數(shù)配置的基本設置步驟。然而,在實際應用中,有些人可能會遇到AD設置為右對齊,但結果卻是左對齊的情況。這是因為上述代碼中少設置了一個成員變量ADC__ExternalTrigConv。
解決方法
經(jīng)過仿真分析,發(fā)現(xiàn)ADC__ExternalTrigConv默認值為0x08002d40,因此調用ADC_Init后,ADC_CR2寄存器的值被改變,不是你設置的值。要解決這個問題,只需要加上以下這句話:
ADC__ExternalTrigConv ADC_ExternalTrigConv_T1_CC1;
這句話可以確保ADC__ExternalTrigConv的值是你想要的,從而解決AD設置為右對齊,但結果卻是左對齊的問題。
結論
在使用STM32F407單片機進行ADC設置時,建議將ADC結構體所有變量都設置好。如果有哪個變量沒有設置,那么初值就不一定是你想要的,最終結果也可能不是你想要的。