STM32ADC的基本原理
一。什么是
本文引用地址:http://dyxdggzs.com/article/201807/383589.htm
二。ADC的特點(diǎn)

ADC的位數決定了ADC的精度,有8位的,12位的,16位的等。
還有一個(gè)很重要的參數就是轉換時(shí)間。
STM32f103RBT6有2個(gè)ADC控制器。128KFlash,20KRAM
每一個(gè)ADC控制器都有多個(gè)通道,例如ADC1的外部通道有16個(gè),可以理解為有一個(gè)開(kāi)關(guān)分別連接各個(gè)通道。
每個(gè)通道的采樣間隔和采樣時(shí)間都可以設置。
三。ADC各通道與IO管腳對應表


一般負參考電壓接地,正參考電壓接3.3V。
模擬輸入電壓不能超過(guò)3.3V,否則輸入引腳可能被燒毀。
ADC框圖

Vref+連接到VDDA,Vref-連接到VSSA。
最多4個(gè)通道連接到注入通道,最多16個(gè)通道連接到規則通道。
什么是規則通道:相當于正常運行的程序,最多16個(gè)通道,規則通道和它的轉換順序在A(yíng)DC_SQRx中選擇,規則組轉換的總數應寫(xiě)入ADC_SQR1寄存器的L[3:0]中。
規則通道轉換的結果保存在規則通道中。
什么是注入通道:相當于中斷,最多4個(gè)注入通道。注入組和它的轉換順序在A(yíng)DC_JSQR寄存器中選擇,注入組里轉換的總數應寫(xiě)入ADC_JSQR寄存器的L[1:0]中。
注入通道轉換的結果保存在注入通道的數據寄存器中。
規則通道VS注入通道



四。單次轉換VS連續轉換


單次轉換完成后不會(huì )自動(dòng)轉到另外一個(gè)通道的轉換,需要手動(dòng)設置才能啟動(dòng),連續轉換是ADC轉換結束后馬上就自動(dòng)啟動(dòng)另一次轉換。
掃描模式

只在最后一個(gè)通道轉換完畢后才會(huì )產(chǎn)生EOC或JEOC中斷。一般通過(guò)DMA讀取數據。
五。ADC中斷

六。ADC的時(shí)鐘配置

例如:系統時(shí)鐘是72M,就要選擇6分頻或8分頻,6分頻為12M。
七。ADC_CR1寄存器


這里我們一般選擇獨立模式。
八。ADC_CR2寄存器

九。對齊方式
因為STM32為12為AD,寄存器為16位,所以需要選擇對齊方式。


本次實(shí)驗中選擇的軟件轉換,也就是19:17位設置為111.
十。ADC_SMPR1寄存器

十一。ADC_SMPR2寄存器

ADC的時(shí)鐘已經(jīng)有RCC_CFGR寄存器設置。
ADC_SMPR1和ADC_SMPR2寄存器用來(lái)設置通道0到通道17的采樣時(shí)間。ADC每個(gè)通道都可以獨立設置采樣時(shí)間。

?注:應該是最小轉換時(shí)間為1us
最小的轉換時(shí)間是1us。
十二。ADC_SQR1,SQR2,SQR3規則序列寄存器

設置規則通道序列的長(cháng)度,第一個(gè)轉換對應哪一個(gè)通道,第二個(gè)轉換對應哪個(gè)通道等等。
十三。ADC_JSQR注入系列寄存器

十四。ADC_DR 規則通道數據寄存器

我們這里主要用到低16位。

十五。ADC_SR 狀態(tài)寄存器

十六。ADC常用的庫函數


例:




- STM32單片機中文官網(wǎng)
- STM32單片機官方開(kāi)發(fā)工具
- STM32單片機參考設計
評論