STM32ADC的基本原理
一。什么是
本文引用地址:http://m.butianyuan.cn/article/201807/383589.htm![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_0.jpg)
二。ADC的特點
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_1.jpg)
ADC的位數(shù)決定了ADC的精度,有8位的,12位的,16位的等。
還有一個很重要的參數(shù)就是轉(zhuǎn)換時間。
STM32f103RBT6有2個ADC控制器。128KFlash,20KRAM
每一個ADC控制器都有多個通道,例如ADC1的外部通道有16個,可以理解為有一個開關(guān)分別連接各個通道。
每個通道的采樣間隔和采樣時間都可以設(shè)置。
三。ADC各通道與IO管腳對應(yīng)表
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_2.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_3.jpg)
一般負(fù)參考電壓接地,正參考電壓接3.3V。
模擬輸入電壓不能超過3.3V,否則輸入引腳可能被燒毀。
ADC框圖
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_4.jpg)
Vref+連接到VDDA,Vref-連接到VSSA。
最多4個通道連接到注入通道,最多16個通道連接到規(guī)則通道。
什么是規(guī)則通道:相當(dāng)于正常運(yùn)行的程序,最多16個通道,規(guī)則通道和它的轉(zhuǎn)換順序在ADC_SQRx中選擇,規(guī)則組轉(zhuǎn)換的總數(shù)應(yīng)寫入ADC_SQR1寄存器的L[3:0]中。
規(guī)則通道轉(zhuǎn)換的結(jié)果保存在規(guī)則通道中。
什么是注入通道:相當(dāng)于中斷,最多4個注入通道。注入組和它的轉(zhuǎn)換順序在ADC_JSQR寄存器中選擇,注入組里轉(zhuǎn)換的總數(shù)應(yīng)寫入ADC_JSQR寄存器的L[1:0]中。
注入通道轉(zhuǎn)換的結(jié)果保存在注入通道的數(shù)據(jù)寄存器中。
規(guī)則通道VS注入通道
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_5.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_6.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_7.jpg)
四。單次轉(zhuǎn)換VS連續(xù)轉(zhuǎn)換
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_8.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_9.jpg)
單次轉(zhuǎn)換完成后不會自動轉(zhuǎn)到另外一個通道的轉(zhuǎn)換,需要手動設(shè)置才能啟動,連續(xù)轉(zhuǎn)換是ADC轉(zhuǎn)換結(jié)束后馬上就自動啟動另一次轉(zhuǎn)換。
掃描模式
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_10.jpg)
只在最后一個通道轉(zhuǎn)換完畢后才會產(chǎn)生EOC或JEOC中斷。一般通過DMA讀取數(shù)據(jù)。
五。ADC中斷
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_11.jpg)
六。ADC的時鐘配置
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_12.jpg)
例如:系統(tǒng)時鐘是72M,就要選擇6分頻或8分頻,6分頻為12M。
七。ADC_CR1寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_13.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_14.jpg)
這里我們一般選擇獨(dú)立模式。
八。ADC_CR2寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_15.jpg)
九。對齊方式
因為STM32為12為AD,寄存器為16位,所以需要選擇對齊方式。
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_16.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_17.jpg)
本次實驗中選擇的軟件轉(zhuǎn)換,也就是19:17位設(shè)置為111.
十。ADC_SMPR1寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_18.jpg)
十一。ADC_SMPR2寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_19.jpg)
ADC的時鐘已經(jīng)有RCC_CFGR寄存器設(shè)置。
ADC_SMPR1和ADC_SMPR2寄存器用來設(shè)置通道0到通道17的采樣時間。ADC每個通道都可以獨(dú)立設(shè)置采樣時間。
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_20.jpg)
?注:應(yīng)該是最小轉(zhuǎn)換時間為1us
最小的轉(zhuǎn)換時間是1us。
十二。ADC_SQR1,SQR2,SQR3規(guī)則序列寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_21.jpg)
設(shè)置規(guī)則通道序列的長度,第一個轉(zhuǎn)換對應(yīng)哪一個通道,第二個轉(zhuǎn)換對應(yīng)哪個通道等等。
十三。ADC_JSQR注入系列寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_22.jpg)
十四。ADC_DR 規(guī)則通道數(shù)據(jù)寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_23.jpg)
我們這里主要用到低16位。
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_24.jpg)
十五。ADC_SR 狀態(tài)寄存器
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_25.jpg)
十六。ADC常用的庫函數(shù)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_26.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_27.jpg)
例:
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_28.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_29.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_30.jpg)
![](http://uphotos.eepw.com.cn/fetch/20180719/383589_1_31.jpg)
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開發(fā)工具
- STM32單片機(jī)參考設(shè)計
評論