STM32f0芯片ADC連續讀取值相同


是因為ADC_ChannelConfig這個函數問題

其中 ADCx->CHSELR |= (uint32_t)ADC_Channel 對寄存器賦值使用了“|”,這會造成下一次循環轉換時仍然轉換最高位通道
解決辦法是,在每次調用 ADC_ChannelConfig 之后,再對寄存器寫入

if(index == X)
{
ADC_ChannelConfig(ADC1,ADC_Channel_7 , ADC_SampleTime_55_5Cycles); //µ¥¶ÀÅäÖÃÐèÒª²ÉÑùµÄͨµÀ
ADC1->CHSELR = ADC_Channel_7;
}else
{
ADC_ChannelConfig(ADC1,ADC_Channel_6 , ADC_SampleTime_55_5Cycles); //µ¥¶ÀÅäÖÃÐèÒª²ÉÑùµÄͨµÀ
ADC1->CHSELR = ADC_Channel_6;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM