• <label id="gmp5l"></label>

    <li id="gmp5l"></li>
      • 您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
        4新聞資訊
        您的位置: 首頁 ->  新聞資訊 -> 單片機

        ?STM32F0多路ADC采樣中的BUG和解決方案

        文章出處:單片機 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時間:
        2020
        11-10

        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 寄存器即可。 


        上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

        CopyRight 2020-2025 www.jlodreman.com All rights reserved   滬ICP備2021005866號

        亚洲人成影院在线观看,91综合永久在线观看,欧洲亚洲日韩国产AV一级,中文字幕在线视频播放
      • <label id="gmp5l"></label>

        <li id="gmp5l"></li>