<tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
    • <kbd id="ygvxt"></kbd>
      <th id="ygvxt"><progress id="ygvxt"></progress></th>

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

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

      文章出處:?jiǎn)纹瑱C(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
      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無法配置多路采樣,多路采樣采集值不對(duì),研究后發(fā)現(xiàn)是底層函數(shù)沒有將CHANNEL清零導(dǎo)致的


      只需要在函數(shù)中增加 hadc.Instance->CHSELR = 0; 手動(dòng)清0 寄存器即可。 


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

      CopyRight 2020-2025 www.hljhgw.com All rights reserved   滬ICP備2021005866號(hào)

      国产强伦姧在线观看,…中文天堂在线一区,亚洲欧洲精品污网站在线观看,在线视频综合站
      <tfoot id="ygvxt"><menuitem id="ygvxt"></menuitem></tfoot>
        • <kbd id="ygvxt"></kbd>
          <th id="ygvxt"><progress id="ygvxt"></progress></th>