STM32的同步规则模式使用
??? 由于要采集電壓、電流以計算功率、阻抗等信息,STM32的同步規則模式很適合于這種情景。使用時有幾點需要注意的:
1、選擇正確的模式:ADC_Mode_RegSimult,即DUALMOD[3:0] = 0110,ADC2在雙模式中,這些位為保留位
2、開啟ADC的DMA,在雙ADC模式里,為了在主數據寄存器上讀取從轉換數據,必須使能DMA位,即使不使用DMA傳輸規則通道數據。只有ADC1和ADC3能產生DMA請求。所以只需設置ADC1的DMA:ADC_DMACmd(ADC1, ENABLE);
3、ADC2的轉換數據存在ADC1_DR的高半字;
4、不要在2個ADC上轉換相同的通道((兩個ADC在同一個通道上的采樣時間不能重疊)。
5、ADC2的CR2寄存器的第20位——EXTTRIG:規則通道的外部觸發轉換模式必須開啟(軟件啟動的時候也要),這樣才能利用到ADC1的觸發信號。不然的話,需要手動再軟啟動一次ADC2,例如ADC_SoftwareStartConvCmd(ADC2, ENABLE);
??? 但是,假如你設置了這個位之后,就不需要手動軟啟動ADC2了,所以考慮到同步,這樣比較好:
?ADC_SoftwareStartConvCmd(ADC1, ENABLE);/* Start ADC2 Software Conversion */ //ADC_SoftwareStartConvCmd(ADC2, ENABLE);//不需要了
用ADC_SoftwareStartConvCmd(ADC2, ENABLE);為什么可以,一方面它也設置了EXTTRIG位,另一方面也設置了SWSTART。但我覺得先用ADC_ExternalTrigConvCmd(ADC2, ENABLE);的話,一會只要ADC1一啟動,兩者就同時啟動了,這樣更正確一點。
?
轉載于:https://www.cnblogs.com/TrueElement/archive/2012/09/13/2683540.html
總結
以上是生活随笔為你收集整理的STM32的同步规则模式使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 反编译Apk (Mac)
- 下一篇: 100天搞定机器学习|Day35 深度学