在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32的AD輸入口存在電壓的問題--連續(xù)轉(zhuǎn)換模式

            STM32的AD輸入口存在電壓的問題--連續(xù)轉(zhuǎn)換模式

            作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
            找到了AD輸入口存在電壓的問題

            今天重新整了一下程序,改變了思路,結(jié)果不但解決了數(shù)據(jù)出現(xiàn)錯位的問題.無意中居然把前面的問題也解決了,原先懷疑輸入阻抗引起的結(jié)論是錯誤的。真正的罪魁禍首是下面這句話:
            ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;
            使用連續(xù)轉(zhuǎn)換模式,在采用電阻分壓取信號并且該分壓電阻很大的情況下,容易出現(xiàn)信號被引腳電壓淹沒的現(xiàn)象。至于該電壓為何在連續(xù)轉(zhuǎn)換模式下產(chǎn)生,現(xiàn)在我沒進一步研究。因為后來我的思路是不用連續(xù)轉(zhuǎn)換,結(jié)果什么問題都解決了,呵呵。
            上午我將Fadc改成16M,并且Ts設(shè)成最小(1.5Cycles),當電池拿掉后,量AD輸入口的電壓,約為0.04V,已經(jīng)比較接近零了。接上電池(標準3.0V,滿的時候?qū)嶋H為3.2V)后,分壓點的電壓變成1.52V,讀到CPU內(nèi)部經(jīng)運算后的電壓為1.6V,這個數(shù)據(jù)實際上已經(jīng)很好的,因為此時的輸入阻抗應(yīng)該在1.2K以下了.看來應(yīng)該重新理解一下AD的輸入阻抗了。

            本文引用地址:http://www.biyoush.com/article/201611/315432.htm

            故使用ADC單詞轉(zhuǎn)換模式解決這個問題

            例如,每隔30ms讀取4個AD口的數(shù)值,官方的例程只給出ADC+DMA的方式,這里采用非DMA方式。

            先配置IO口:

            GPIO_InitTypeDef gpioInitStruct;
            gpioInitStruct.GPIO_Speed = GPIO_Speed_50MHz;

            gpioInitStruct.GPIO_Pin = GPIO_Pin_3;
            gpioInitStruct.GPIO_Mode = GPIO_Mode_AIN;
            GPIO_Init(GPIOC, &gpioInitStruct);

            gpioInitStruct.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6;
            gpioInitStruct.GPIO_Mode = GPIO_Mode_AIN;
            GPIO_Init(GPIOA, &gpioInitStruct);

            配置ADC:
            將ADC配置成非掃描方式(就是每次處理時不會掃描本組內(nèi)的所有端口),因為采用規(guī)則組時只有一個寄存器保存adc結(jié)果;單次模式。

            ADC_InitTypeDef adcInitStruct;
            adcInitStruct.ADC_Mode = ADC_Mode_Independent;
            adcInitStruct.ADC_ScanConvMode = DISABLE;
            adcInitStruct.ADC_ContinuousConvMode = DISABLE;
            adcInitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
            adcInitStruct.ADC_DataAlign = ADC_DataAlign_Right;
            adcInitStruct.ADC_NbrOfChannel = 1;

            //ADC自校驗:

            timeOut = 10000;
            ADC_ResetCalibration(ADC1);
            while((ADC_GetResetCalibrationStatus(ADC1)) && (timeOut--));

            timeOut = 10000;
            ADC_StartCalibration(ADC1);
            while((ADC_GetCalibrationStatus(ADC1)) && (timeOut--));

            每次掃描時調(diào)用函數(shù):

            void sysGetAdcResult(void)
            {
            u8 i;

            for(i=0; i<4; i++)
            {
            _adcResult[i] = 0x0FFF;

            switch (i)
            {
            case 0: ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 1, ADC_SampleTime_239Cycles5); break;
            case 1: ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_239Cycles5); break;
            case 2: ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 1, ADC_SampleTime_239Cycles5); break;
            case 3: ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 1, ADC_SampleTime_239Cycles5); break;
            }
            // 必須先調(diào)用ADC_Cmd()

            ADC_Cmd(ADC1, ENABLE);
            ADC_TempSensorVrefintCmd(ENABLE);
            ADC_SoftwareStartConvCmd(ADC1, ENABLE);

            // 需要等待一段時間
            sysDelay(200);
            _adcResult[i] = ADC_GetConversionValue(ADC1);

            ADC_ClearFlag(ADC1, ADC_FLAG_EOC);
            ADC_TempSensorVrefintCmd(DISABLE);
            ADC_SoftwareStartConvCmd(ADC1, DISABLE);
            ADC_Cmd(ADC1, DISABLE);
            }
            }

            .您在上面提到的采樣時間的選擇,AD轉(zhuǎn)換周期(TCONV) = 采樣時間+ 12.5個周期。如何選擇?依據(jù)是什么?

            要看外接的等效輸入電阻及電容。103的DATASHEET上有一個公式

            R(AIN)
            還有一個圖表

            Ts (cycles)tS (μs)RAIN max (kΩ)

            1.50.111.2

            7.50.5410

            13.50.9619

            28.52.0441

            41.52.9660

            55.53.9680

            71.55.11104

            239.517.1350


            評論


            技術(shù)專區(qū)

            關(guān)閉