ADC測量實時電壓值並通過串列埠顯示總結

2021-08-15 07:21:54 字數 1886 閱讀 7381

第三期的任務是adc實驗,測量實時電壓值並通過串列埠顯示。做出的現象是可以顯示電壓值,但數值誤差很大,提供3.3v電壓源,一端接電壓源地線,另一端接pa5引腳,測量這兩端電壓值,測出的資料在1.800v左右波動,與3.3v相差很大。目前尚未找出原因。總之,關於adc的知識了解得不夠多,還需多多學習,深入了解和掌握。

以下是有關adc和串列埠內容的筆記:

1·外設復用功能。

對於adc和dac,在gpiox_moder暫存器中將所需i/o配置為模擬通道;

對於其他外設,在gpiox_moder暫存器中將所需i/o配置為復用功能。

2·處理器與外部設定通訊。

並行通訊;

序列通訊:單工,半雙工,全雙工。

序列通訊通訊方式:

同步通訊,帶時鐘同步訊號傳輸。

非同步通訊,不帶時鐘同步訊號傳輸。

3·常用的串列埠相關暫存器:usart_sr狀態暫存器,usart_vr資料暫存器,usart_brr波特率暫存器。

4·外部中斷的一般配置步驟:

使能時鐘;

初始化io口為輸入;

設定io口與中斷線的對映關係;

初始化線上中斷,設定觸發條件等;

配置中斷分組nvic,並使能中斷;

編寫中斷服務函式;

清楚中斷標誌位。

5·gpio

4種輸入模式:輸入浮空,輸入上拉,輸入下拉,模擬輸入。

4種輸出模式:開漏輸出(只可輸出強低電平,高電平得靠外部電阻拉高),開漏復用功能,推挽式輸出(可以輸出強高低電平,連線數字器件),推挽式復用功能。

6·中斷優先順序設定步驟:

系統執行後先設定中斷優先順序分組,整個系統執行過程中,只設定一次中斷分組;

針對每個中斷分組,設定對應的搶占優先順序和響應優先順序;

如需掛起/解掛,檢視中斷當前啟用狀態,分別呼叫相關函式即可。

7·stm32的串列埠通訊介面:uart通用非同步收發器,usart通用同步非同步收發器。

8·上拉就是輸入高電平,後接乙個上拉電阻,起保護作用,即表示該埠在預設情況下輸入為高電平。

9·串列埠設定

串列埠時鐘使能,gpio時鐘使能;

設定引腳復用器對映;

gpio初始化設定,要設定模式為復用功能;

串列埠引數初始化,設定波特率,字長,奇偶校驗等引數;

開啟中斷並初始化nvic,使能中斷;

使能串列埠;

編寫中斷處理函式。

11·nvic提供中斷控制器。

12·adc:典型的模擬電子轉換器將模擬訊號轉換為表示一定比例電壓值的數碼訊號。

13·stm32通道組

規則通道組:相當於正常執行的程式,最多16個通道。

注入通道組:相當於中斷,最多4個通道。

14·stm32f4的adc各通道可以單次,連續,掃瞄或者間斷模式執行。

單次轉換:在其模式下,adc執行一次轉換。

連續轉換:adc結束乙個轉換後立即執行乙個新的轉換。

15·adc1的通道5進行單次轉化

開啟pa口時鐘和adc1時鐘,設定pa1為模擬輸入;

復位adc1,同時設定adc1分頻因子;

初始化adc_ccr暫存器;

初始化adc1引數,設定adc1的工作模式以及規則系列的相關資訊;

使能adc;

配置規則通道引數;開啟軟體轉換;

等待轉換完成,讀取adc值。

16·adc電源要求:2.4--3.6v

17·系統**執行過程中,只設定一次中斷優先順序分組。

18·dma直接儲存器訪問,其傳輸方式無需cpu直接控制傳輸,為cpu減負。

19·stm32f4最多有2個dma控制器,2個dma控制器總共有16個資料流,每個dma控制器都用於管理乙個或多個外設的儲存器訪問請求,每個資料流總共可以有多達8個通道請求,每個通道都有乙個仲裁器,用於處理dma請求間的優先順序。

ADC 與實際電壓值的關係

1.首先確定adc用幾位表示,最大數值是多少。比如乙個8位的adc,最大值是0xff,就是255。2.然後確定最大值時對應的參考電壓值。一般而言最大值對應3.3v。這個你需要看這個晶元adc模組的說明。暫存器中有對於輸入訊號參考電壓的設定。3.要計算電壓,就把你的adc數值除以剛才確定的最大數值再乘...

如何測量電壓?

1 電壓測量的方法一般分為直接測量法和間接測量法兩種。直接測量法在測量過程中,能從儀器 儀表上直接讀出被測參量的波形或數值。間按測量是先對各間按參量進行直接測量,再將測得的數值代入公式,通過計算得到待測參量。2 測量電壓的儀器一般有電壓表 示波器 交流毫伏表等。電壓表可以用來測量直流電壓 低頻交流電...

ADC監測電壓時,檢測值偏低的原因分析。

今天同事在除錯adc時,發現檢測值比實際值偏低。下圖是電壓採集的示意圖。這個bug的現象是當採集vcc和gnd時,adc的取樣數值是正確的,但是在採集中間點的電壓時,adc所得到的電壓值遠遠小於實際的電壓值。經過一番除錯後,我們認為是分壓電阻太大了,導致取樣的精度被影響了。然後我們將阻值換為10k和...