STM32F0多路ADC采樣中的BUG和解決方案
uint32_t ADC_Detect(uint32_t AD_Channel){
hadc.Instance->CHSELR = 0;
ADC_ChannelConfTypeDef sConfig;
sConfig.Channel = AD_Channel;
sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
HAL_ADC_ConfigChannel(&hadc, &sConfig);
uint32_t ADC_result;
/*ADC START*/
if(HAL_ADC_Start(&hadc)!=HAL_OK)
{
while(1)
{
}
}
/*Wait for ADC completed*/
if (HAL_ADC_PollForConversion(&hadc, 10) != HAL_OK)
{
while(1)
{
}
}
else
{
/*Get the converted value of regular channel*/
ADC_result = HAL_ADC_GetValue(&hadc);
HAL_ADC_Stop(&hadc);
//ADC_result =((ADC_result*3300)>>8);
return ADC_result;
}
}
使用CUBE生產(chǎn)的ADC無法配置多路采樣,多路采樣采集值不對,研究后發(fā)現(xiàn)是底層函數(shù)沒有將CHANNEL清零導(dǎo)致的
只需要在函數(shù)中增加 hadc.Instance->CHSELR = 0; 手動清0 寄存器即可。
- 被動元件缺料漲價(jià)災(zāi)情慘烈,部分代工廠商或面臨倒閉危機(jī)[18年05月16日 10:04]
- 綠聯(lián)無線充電器評測_性價(jià)比爆棚價(jià)格實(shí)惠[18年05月19日 14:38]
- 基于i.MX6UL處理器的上電時(shí)序設(shè)計(jì)[18年05月19日 14:36]
- 綠聯(lián)無線充電器怎么樣_綠聯(lián)無線充電器拆解詳情[18年05月19日 14:14]
- 綠聯(lián)qc3.0快速充電器評測(外觀、性能、兼容測試)[18年05月19日 14:06]
- 電源重新上電引起的MCU啟動失敗的原因分析[18年05月19日 14:04]