怎樣用stm32(F103系列是12位ADC)

2021-08-01 11:47:38 字數 1666 閱讀 8220

重點在最後一段(看懂就行了)

可採用過取樣技術。過取樣技術是一種以犧牲取樣速度來提高adc解析度的技術。如果stm32的12位ad,每秒採集10個資料,即取樣率為:10/秒。根據過取樣技術,每提高1位adc解析度,需要增加4倍的取樣率。從12位ad提高到14位ad,一共提高了2位,所以需要把取樣率提高2 * 2 * 2 * 2 = 16倍。原來在100ms之內只採集乙個資料,現在需要在100ms之內採集16個資料了。然後,我們把這16個資料累加,再把累加值右移2位,這樣就得到stm32過取樣之後的14位adc。

需要注意的是,過取樣技術會限制輸入訊號的頻率。根據取樣定律,取樣率最少是輸入訊號的2倍才能將訊號還原。當需要提高n位的adc解析度時,取樣率又得提高4*n倍。stm32的12位adc的最高取樣率為1mhz,如果要達到14位的adc解析度,那麼輸入訊號的頻率就不能超過:1m/2/15 = 31.25khz。

stm32的精度不可能提高的太多,要提高只能在解析度上想辦法,提高解析度間接提高精度,但是這是由乙個度的,跟你的要取樣的外部訊號的頻率、cpu的處理速度等等都是有關係的。 

過取樣只能提高解析度,精度不是隨便可以提高的。要不然0832不就能替代所有的ad晶元了。 

精度通常是指準確度。指測量值與實際值的差異性。影響精度的因素很多。如分辨力,線性度等。 

解析度可以通過分辨力來理解。8bit的分辨力為1/256,10bit時為1/1024,但實際還要通過量程轉換成具體的值,不能沒有量綱或單位(量綱與單位是不同的概念)。 

解析度通常用百分比來表示,而分辨力則用絕對值來表示。「5/256 =0.01953125v」指的是分辨力而不是解析度。而這樣的分辨能力僅僅是指理論能力而不是實際能力。因為實際能力還要包括非線性因素引起「干擾」。 

總結:解析度容易提公升到24位,但是精度能到24位的要求就很高了。市面上的16、24位ad轉換晶元一般指的是解析度,而不是精度。 

stm32的adc如果要使用在精度要求高的地方,如3級電子稱、精準計量儀表的話,stm32就比較勉強了。建議換外接的adc。

到底怎樣使用過取樣法來提高ad取樣精度?

以下的思路使用於任何微控制器: 

比如設個定時器每個10us觸發下stm32的adc的採用,採到256個後將256個資料累加求和,如果當12位adc用就除以256,13位用除以128,14位用除以64,15位用除以32,16位用除以16。得到結果後存放緩衝區中,再增加一段軟體濾波程式就ok了! 

例如下面這段程式:

#define 

vcctmpadcval

16384//14位adc

vref_val=vccval*adc_filterchannel[inrefv]/vcctmpadcval ; //內部參考電壓對應的電壓值 

vref_val=3.3*內部基準電壓的十六進製制adc值/16384

void fileteradc(void)

for(k=0; k

for(i=n; i>0; i--)//部落格不顯示出來 一定要顯示出來這句

for(j=0; j<=i; j++)

}for(i=0; i

adc_filterchannel[i]=sum/10;  

//取平均/

/當14位adc使用時,累加和要除以(取樣個數右移兩位)//sum/(40>>2)

} }

magicoctoy。後面我自己加了一段例項,方便理解。

STM32F103系列驅動舵機

舵機的控制一般需要乙個20ms左右的時基脈衝,該脈衝的高電平部分一般為0.5ms 2.5ms範圍內的角度控制脈衝部分。以180度角度伺服為例,那麼對應的控制關係是這樣的 0.5ms 0度 1.0ms 45度 1.5ms 90度 2.0ms 135度 2.5ms 180度 由公式 定時器溢位時間 s ...

stm32f103外部中斷

void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...

STM32F103啟動檔案

目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...