adc mda 的一些配置,,,非常感謝分享

2021-08-04 05:37:16 字數 1637 閱讀 9540

1、對於adc來說,我們關注的是它的解析度、轉換速度、adc型別、參考電壓範圍。

a、解析度,12位解析度,最小量化單位lsb=vref+/212

b、轉換時間,可程式設計的,取樣一次至少要用14個adc時鐘週期,而adc時鐘頻率最高為14mhz,也就是說它的最短取樣時間為1us

c、adc型別,型別決定了效能的極限,stm32是逐次比較型adc

d、參考電壓範圍,當需要測量負電壓或測量的訊號超出範圍時,要先經過運算電路進行平移或利用電阻分壓

2、adc工作過程分析,adc部件要受到觸發訊號才開始進行轉換,如exti外部觸發、定時器觸發,也可以軟體觸發。adc部件在接收到觸發訊號後,在adcclk時鐘的驅動下對輸入通道訊號進行取樣,並進行模數轉換。其中,adcclk來自adc的預分頻器

3、dma在傳輸時,由於不是核心執行的指令,所以修改變數值是絕對不會出現賦值語句的。

4、在adc_init( )中完成對adc和dma配置後,adc就不停地採集資料,而dma就自動把adc採集到的資料轉移至記憶體中的變數adc_convertedvalue.因此,它是乙個實時值

5、adc1_gpio_config( )的功能就是使能dma時鐘、gpio時鐘、adc1時鐘。然後把adc1的通道11使用的gpio引腳pc1配置成模擬輸入模式

6、配置dma,adc模式及其dma傳輸方式都在adc_mode_config( )中實現,adc的dma整體上被配置為:使用dma1的通道1

7、配置adc模式:主要對adc的初始化結構體進行賦值,下面是它的結構體成員:

a、.adc_mode,多個adc,不同的adc又是共用相同的通道,根據同乙個通道的先後順序、時間間隔,可劃分10種模式(測量電壓分壓後的電壓值,要求不高,用乙個adc就可以了)

b、.adc_scanconvmode,當有多個通道需要採集訊號時,可配置為按一定順序對各個通道進行掃瞄轉換,即輪流採集各通道的值,若採集多個通道,必須開啟此模式

c、adc_continuousconvmode,連續轉換模式,即在上一次轉換完後,立即開啟下一次的轉換

d、adc_externaltrigconv,外部觸發,若使用軟體觸發,則adc_externaltrigconv_none

e、.adc_dataalign,資料對齊方式

f、.adc_nbrofchannel,這個成員儲存了要進行adc資料轉換的通道數

8、adc初始化使用adc_init( )函式,但要呼叫adc_cmd( )函式來使能adc外設,用adc_dmacmd( )函式來使能adc的dma介面

9、adc轉換時間配置:rcc_adcclkconfig( )設定分頻值,adc轉換時間不僅與adc的時鐘有關,還與取樣週期有關

11、adc自校準,在adc轉換前,要啟動adc的自校準,校準可以大幅度減少準精度誤差

12、軟體觸發可以呼叫庫函式adc_softwarestartconvcmd( )來開啟軟體觸發

14、用volatile宣告的型別變數表示可以被某些編譯器未知的因素更改,比如:作業系統、硬體或者其它執行緒等。 因為adc_convertedvalue這個變數值隨時都是會被dma控制器改變的,所以我們用volatile來修飾它,確保每次讀取到的都是實時的adc轉換值。

15、adc通用的電壓計算公式:實際電壓值=adc轉換值*lsb

請大家幫忙做乙份問卷,非常感謝!

1 你的年齡是?2 你是哪一年畢業的?3 你是否認為自己是 貧二代 貧二代 有以下簡單特徵 出身貧寒,社會關係缺乏,求職過程中全靠個人奮鬥 a 是 b.不是 4 你是何時找到第乙份工作的 包括創業 填年月 5 第乙份工作的月薪大概是多少?a.1000 元以下 b.1000 2000元 c.2000 ...

請大家幫忙做乙份問卷,非常感謝!

1 你的年齡是?2 你是哪一年畢業的?3 你是否認為自己是 貧二代 貧二代 有以下簡單特徵 出身貧寒,社會關係缺乏,求職過程中全靠個人奮鬥 a 是b.不是 4 你是何時找到第乙份工作的 包括創業 填年月 5 第乙份工作的月薪大概是多少?a.1000 元以下b.1000 2000元c.2000 300...

一些非常非常基本的東西的記錄

1 關於c與c 的一些帖子 入門帖基礎帖 double a 將a轉換成double型別 int x y 將x y的值轉換成整型 float 5 3 將5 3的值轉換成float型 強制型別轉換的一般形式為 型別名 表示式 1 控制語句,完成一定的控制功能 c 有9種控制語句,即 if else 條件...