成人精品水蜜桃_成人在线丰满少妇av_91亚洲国产高清_欧美日韩免费区域视频在线观看

首頁 項目 > 正文

STM32入門篇—ADC教程

1、main.c 簡單清楚地一個例程,一個簡單的ADC例程,調(diào)用了A0引腳測量電壓值。


(資料圖片僅供參考)

2、ADC初始化,PTA0

M_ADC_Init(ADC1, ADC_CH0_Pin, ADC_ExternalTrigConv_None, 1, Rank_1);

3、ADC初始化---ADC_CH0_Pin選擇

4、ADC初始化---ADC_ExternalTrigConv_None的****選擇

使用軟件觸發(fā),一般不需要更改這個配置。

5、ADC初始化--- 1選擇通道數(shù):

**6、**ADC初始化--- Rank_1采樣順序:

7、ADC采樣: M_ADCx_GetValue(ADC_TypeDef* ADCx);

8、ADC采樣再解釋

掌握了ADC的功能框圖,就可以對ADC有一個整體的把握,在編程的時候可以做到了然如胸,不會一知半解。框圖講解采用從左到右的方式,跟ADC采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù),傳輸數(shù)據(jù)的方向大概一致。

(1). ①電壓輸入范圍

ADC輸入范圍為:VREF- ≤ VIN≤ V REF+。由V REF-、VREF+、VDDA、V SSA、這四個外部引腳決定。

我們在設(shè)計原理圖的時候一般把VSSA和V REF-接地,把V REF+和VDDA接3V3,得到ADC的輸入電壓范圍為:0~3.3V。

如果我們想讓輸入的電壓范圍變寬,去到可以測試負電壓或者更高的正電壓,我們可以在外部加一個電壓調(diào)理電路,把需要轉(zhuǎn)換的電壓抬升或者降壓到0~3.3V,這樣ADC就可以測量了。

(2). ②輸入通道

我們確定好ADC輸入電壓之后,那么電壓怎么輸入到ADC?這里我們引入通道的概念,STM32的ADC多達19個通道,其中外部的16個通道就是框圖中的ADCx_IN0、ADCx_IN1...ADCx_IN5。這16個通道對應(yīng)著不同的IO口,具體是哪一個IO口可以從手冊查詢到。其中ADC1/2/3還有內(nèi)部通道: ADC1的通道ADC1_IN16連接到內(nèi)部的VSS,通道ADC1_IN17連接到了內(nèi)部參考電壓VREFINT連接,通道ADC1_IN18連接到了芯片內(nèi)部的溫度傳感器或者備用電源V BAT。ADC2和ADC3的通道16、17、18全部連接到了內(nèi)部的VSS。

圖 02 STM32F429IGT6 ADC 通道

外部的16個通道在轉(zhuǎn)換的時候又分為規(guī)則通道和注入通道,其中規(guī)則通道最多有16路,注入通道最多有4路。那這兩個通道有什么區(qū)別?在什么時候使用?

規(guī)則通道

規(guī)則通道:顧名思意,規(guī)則通道就是很規(guī)矩的意思,我們平時一般使用的就是這個通道,或者應(yīng)該說我們用到的都是這個通道,沒有什么特別要注意的可講。

注入通道

注入,可以理解為插入,插隊的意思,是一種不安分的通道。它是一種在規(guī)則通道轉(zhuǎn)換的時候強行插入要轉(zhuǎn)換的一種。如果在規(guī)則通道轉(zhuǎn)換過程中,有注入通道插隊,那么就要先轉(zhuǎn)換完注入通道,等注入通道轉(zhuǎn)換完成后,再回到規(guī)則通道的轉(zhuǎn)換流程。這點跟中斷程序很像,都是不安分的主。所以,注入通道只有在規(guī)則通道存在時才會出現(xiàn)。

(3). ③轉(zhuǎn)換順序規(guī)則序列

規(guī)則序列寄存器有3個,分別為SQR3、SQR2、SQR1。SQR3控制著規(guī)則序列中的第一個到第六個轉(zhuǎn)換,對應(yīng)的位為:SQ1[4:0]~SQ6[4:0],第一次轉(zhuǎn)換的是位4:0 SQ1[4:0],如果通道16想第一次轉(zhuǎn)換,那么在SQ1[4:0]寫16即可。SQR2控制著規(guī)則序列中的第7到第12個轉(zhuǎn)換,對應(yīng)的位為:SQ7[4:0]~SQ12[4:0],如果通道1想第8個轉(zhuǎn)換,則SQ8[4:0]寫1即可。SQR1控制著規(guī)則序列中的第13到第16個轉(zhuǎn)換,對應(yīng)位為:SQ13[4:0]~SQ16[4:0],如果通道6想第10個轉(zhuǎn)換,則SQ10[4:0]寫6即可。具體使用多少個通道,由SQR1的位L[3:0]決定,最多16個通道。

圖 03 規(guī)則序列寄存器

注入序列

注入序列寄存器JSQR只有一個,最多支持4個通道,具體多少個由JSQR的JL[2:0]決定。如果JL的值小于4的話,則JSQR跟SQR決定轉(zhuǎn)換順序的設(shè)置不一樣,第一次轉(zhuǎn)換的不是JSQR1[4:0],而是JCQRx[4:0] ,x = (4-JL),跟SQR剛好相反。如果JL=00(1個轉(zhuǎn)換),那么轉(zhuǎn)換的順序是從JSQR4[4:0]開始,而不是從JSQR1[4:0]開始,這個要注意,編程的時候不要搞錯。當JL等于4時,跟SQR一樣。

圖 04 注入序列寄存器

(4). ④觸發(fā)源

通道選好了,轉(zhuǎn)換的順序也設(shè)置好了,那接下來就該開始轉(zhuǎn)換了。ADC轉(zhuǎn)換可以由ADC控制寄存器2: ADC_CR2的ADON這個位來控制,寫1的時候開始轉(zhuǎn)換,寫0的時候停止轉(zhuǎn)換,這個是最簡單也是最好理解的開啟ADC轉(zhuǎn)換的控制方式,理解起來沒啥技術(shù)含量。

除了這種庶民式的控制方法,ADC還支持外部事件觸發(fā)轉(zhuǎn)換,這個觸發(fā)包括內(nèi)部定時器觸發(fā)和外部IO觸發(fā)。觸發(fā)源有很多,具體選擇哪一種觸發(fā)源,由ADC控制寄存器2:ADC_CR2的EXTSEL[2:0]和JEXTSEL[2:0]位來控制。EXTSEL[2:0]用于選擇規(guī)則通道的觸發(fā)源,JEXTSEL[2:0]用于選擇注入通道的觸發(fā)源。選定好觸發(fā)源之后,觸發(fā)源是否要激活,則由ADC控制寄存器2:ADC_CR2的EXTTRIG和JEXTTRIG這兩位來激活。

如果使能了外部觸發(fā)事件,我們還可以通過設(shè)置ADC控制寄存器2:ADC_CR2的EXTEN[1:0]和JEXTEN[1:0]來控制觸發(fā)極性,可以有4種狀態(tài),分別是:禁止觸發(fā)檢測、上升沿檢測、下降沿檢測以及上升沿和下降沿均檢測。

(5). ⑤轉(zhuǎn)換時間ADC時鐘

ADC輸入時鐘ADC_CLK由PCLK2經(jīng)過分頻產(chǎn)生,最大值是36MHz,典型值為30MHz,分頻因子由ADC通用控制寄存器ADC_CCR的ADCPRE[1:0]設(shè)置,可設(shè)置的分頻系數(shù)有2、4、6和8,注意這里沒有1分頻。對于STM32F429IGT6我們一般設(shè)置PCLK2=HCLK/2=90MHz。所以程序一般使用4分頻或者6分頻。

采樣時間

ADC需要若干個ADC_CLK周期完成對輸入的電壓進行采樣,采樣的周期數(shù)可通過ADC 采樣時間寄存器ADC_SMPR1和ADC_SMPR2中的SMP[2:0]位設(shè)置,ADC_SMPR2控制的是通道09,ADC_SMPR1控制的是通道1017。每個通道可以分別用不同的時間采樣。其中采樣周期最小是3個,即如果我們要達到最快的采樣,那么應(yīng)該設(shè)置采樣周期為3個周期,這里說的周期就是1/ADC_CLK。

ADC的總轉(zhuǎn)換時間跟ADC的輸入時鐘和采樣時間有關(guān),公式為:

Tconv = 采樣時間 + 12個周期

當ADCCLK = 30MHz,即PCLK2為60MHz,ADC時鐘為2分頻,采樣時間設(shè)置為3個周期,那么總的轉(zhuǎn)換時為:Tconv = 3 + 12 = 15個周期 =0.5us。

一般我們設(shè)置PCLK2=90MHz,經(jīng)過ADC預(yù)分頻器能分頻到最大的時鐘只能是22.5M,采樣周期設(shè)置為3個周期,算出最短的轉(zhuǎn)換時間為0.6667us,這個才是最常用的。

(6). ⑥數(shù)據(jù)寄存器

一切準備就緒后,ADC轉(zhuǎn)換后的數(shù)據(jù)根據(jù)轉(zhuǎn)換組的不同,規(guī)則組的數(shù)據(jù)放在ADC_DR寄存器,注入組的數(shù)據(jù)放在JDRx。如果是使用雙重或者三重模式那規(guī)矩組的數(shù)據(jù)是存放在通用規(guī)矩寄存器ADC_CDR內(nèi)的。

規(guī)則數(shù)據(jù)寄存器ADC_DR

ADC規(guī)則組數(shù)據(jù)寄存器ADC_DR只有一個,是一個32位的寄存器,只有低16位有效并且只是用于獨立模式存放轉(zhuǎn)換完成數(shù)據(jù)。因為ADC的最大精度是12位,ADC_DR是16位有效,這樣允許ADC存放數(shù)據(jù)時候選擇左對齊或者右對齊,具體是以哪一種方式存放,由ADC_CR2的11位ALIGN設(shè)置。假如設(shè)置ADC精度為12位,如果設(shè)置數(shù)據(jù)為左對齊,那AD轉(zhuǎn)換完成數(shù)據(jù)存放在ADC_DR寄存器的[4:15]位內(nèi);如果為右對齊,則存放在ADC_DR寄存器的[0:11]位內(nèi)。

規(guī)則通道可以有16個這么多,可規(guī)則數(shù)據(jù)寄存器只有一個,如果使用多通道轉(zhuǎn)換,那轉(zhuǎn)換的數(shù)據(jù)就全部都擠在了DR里面,前一個時間點轉(zhuǎn)換的通道數(shù)據(jù),就會被下一個時間點的另外一個通道轉(zhuǎn)換的數(shù)據(jù)覆蓋掉,所以當通道轉(zhuǎn)換完成后就應(yīng)該把數(shù)據(jù)取走,或者開啟DMA模式,把數(shù)據(jù)傳輸?shù)絻?nèi)存里面,不然就會造成數(shù)據(jù)的覆蓋。最常用的做法就是開啟DMA傳輸。

如果沒有使用DMA傳輸,我們一般都需要使用ADC狀態(tài)寄存器ADC_SR獲取當前ADC轉(zhuǎn)換的進度狀態(tài),進而進行程序控制。

注入數(shù)據(jù)寄存器ADC_JDRx

ADC注入組最多有4個通道,剛好注入數(shù)據(jù)寄存器也有4個,每個通道對應(yīng)著自己的寄存器,不會跟規(guī)則寄存器那樣產(chǎn)生數(shù)據(jù)覆蓋的問題。ADC_JDRx是32位的,低16位有效,高16位保留,數(shù)據(jù)同樣分為左對齊和右對齊,具體是以哪一種方式存放,由ADC_CR2的11位ALIGN設(shè)置。

通用規(guī)則數(shù)據(jù)寄存器ADC_CDR

規(guī)則數(shù)據(jù)寄存器ADC_DR是僅適用于獨立模式的,而通用規(guī)則數(shù)據(jù)寄存器ADC_CDR是適用于雙重和三重模式的。獨立模式就是僅僅適用三個ADC的其中一個,雙重模式就是同時使用ADC1和ADC2,而三重模式就是三個ADC同時使用。在雙重或者三重模式下一般需要配合DMA數(shù)據(jù)傳輸使用。

(7). ⑦中斷轉(zhuǎn)換結(jié)束中斷

數(shù)據(jù)轉(zhuǎn)換結(jié)束后,可以產(chǎn)生中斷,中斷分為四種:規(guī)則通道轉(zhuǎn)換結(jié)束中斷,注入轉(zhuǎn)換通道轉(zhuǎn)換結(jié)束中斷,模擬看門狗中斷和溢出中斷。其中轉(zhuǎn)換結(jié)束中斷很好理解,跟我們平時接觸的中斷一樣,有相應(yīng)的中斷標志位和中斷使能位,我們還可以根據(jù)中斷類型寫相應(yīng)配套的中斷服務(wù)程序。

模擬看門狗中斷

當被ADC轉(zhuǎn)換的模擬電壓低于低閾值或者高于高閾值時,就會產(chǎn)生中斷,前提是我們開啟了模擬看門狗中斷,其中低閾值和高閾值由ADC_LTR和ADC_HTR設(shè)置。例如我們設(shè)置高閾值是2.5V,那么模擬電壓超過2.5V的時候,就會產(chǎn)生模擬看門狗中斷,反之低閾值也一樣。

溢出中斷

如果發(fā)生DMA傳輸數(shù)據(jù)丟失,會置位ADC狀態(tài)寄存器ADC_SR的OVR位,如果同時使能了溢出中斷,那在轉(zhuǎn)換結(jié)束后會產(chǎn)生一個溢出中斷。

DMA請求

規(guī)則和注入通道轉(zhuǎn)換結(jié)束后,除了產(chǎn)生中斷外,還可以產(chǎn)生DMA請求,把轉(zhuǎn)換好的數(shù)據(jù)直接存儲在內(nèi)存里面。對于獨立模式的多通道AD轉(zhuǎn)換使用DMA傳輸非常有必須要,程序編程簡化了很多。對于雙重或三重模式使用DMA傳輸幾乎可以說是必要的。有關(guān)DMA請求需要配合《STM32F4xx中文參考手冊》DMA控制器這一章節(jié)來學(xué)習(xí)。一般我們在使用ADC的時候都會開啟DMA傳輸。

(8). ⑧電壓轉(zhuǎn)換

模擬電壓經(jīng)過ADC轉(zhuǎn)換后,是一個相對精度的數(shù)字值,如果通過串口以16進制打印出來的話,可讀性比較差,那么有時候我們就需要把數(shù)字電壓轉(zhuǎn)換成模擬電壓,也可以跟實際的模擬電壓(用萬用表測)對比,看看轉(zhuǎn)換是否準確。

我們一般在設(shè)計原理圖的時候會把ADC的輸入電壓范圍設(shè)定在:0~3.3v,如果設(shè)置ADC為12位的,那么12位滿量程對應(yīng)的就是3.3V,12位滿量程對應(yīng)的數(shù)字值是:2^12。數(shù)值0對應(yīng)的就是0V。如果轉(zhuǎn)換后的數(shù)值為 X ,X對應(yīng)的模擬電壓為Y,那么會有這么一個等式成立: 2^12 / 3.3 = X / Y,=> Y = (3.3 * X ) / 2^12。

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團隊 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - m.7778890.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號-3

成人精品水蜜桃_成人在线丰满少妇av_91亚洲国产高清_欧美日韩免费区域视频在线观看
国产传媒一区在线| 成人手机在线视频| 亚洲一级影院| 久久久美女艺术照精彩视频福利播放| 久久99国产精品免费网站| 国产一区二区三区的电影 | 国产高清精品网站| 欧美四级电影在线观看| 五月婷婷激情综合网| 99国产精品久久久久久久成人热| 国产欧美日韩久久| 97se亚洲国产综合自在线观| 欧美mv日韩mv| 国产成人免费视频网站| 这里只有精品免费| 狠狠色丁香久久婷婷综合_中| 久久亚洲一区二区| 丝袜美腿一区二区三区| 欧美中日韩免费视频| 亚洲一区视频在线| 午夜在线精品偷拍| 丝袜美腿亚洲综合| 在线精品视频一区二区三四| 日韩av中文字幕一区二区| 亚洲一区二区三区精品在线观看| 亚洲人被黑人高潮完整版| 999在线观看精品免费不卡网站| 成人欧美一区二区三区小说| 亚洲精品视频啊美女在线直播| 最新中文字幕一区二区三区| 一区精品在线| 亚洲激情av在线| 欧美亚洲一区| 免费观看在线综合色| 欧美日韩国产bt| 成人综合婷婷国产精品久久蜜臀| 精品国产乱码久久久久久蜜臀| av不卡免费在线观看| 中文字幕高清不卡| 亚洲精品美女久久7777777| 亚洲精品中文字幕乱码三区| 西西裸体人体做爰大胆久久久| 日本在线不卡视频| 8x福利精品第一导航| aaa亚洲精品一二三区| 国产精品美女久久久久久久网站| av成人国产| 秋霞成人午夜伦在线观看| 欧美电影一区二区三区| 99久久婷婷国产综合精品| 亚洲视频一区二区在线观看| 色综合久久六月婷婷中文字幕| 久久99久国产精品黄毛片色诱| 欧美哺乳videos| 久久资源av| 风流少妇一区二区| 国产精品妹子av| 久久综合精品一区| 成人免费av资源| 亚洲欧美激情在线| 欧美性淫爽ww久久久久无| 成人免费精品视频| 亚洲男人的天堂在线aⅴ视频| 老色鬼久久亚洲一区二区| 国产成人自拍高清视频在线免费播放| 国产三级精品三级在线专区| 美女图片一区二区| 成人免费毛片aaaaa**| 一区二区三区免费网站| 欧美日韩成人一区二区| 黄色一区三区| 捆绑调教美女网站视频一区| 国产人久久人人人人爽| 久久免费高清| 成人精品鲁一区一区二区| 亚洲黄色小说网站| 91精品国产综合久久精品图片 | 91麻豆.com| 五月婷婷久久综合| 久久先锋资源网| 久久午夜av| 欧美日韩国产不卡在线看| 日本中文一区二区三区| 亚洲国产精品99久久久久久久久| 欧美日韩一区在线| 一区二区自拍| 大尺度一区二区| 亚洲成人动漫一区| 欧美国产一区视频在线观看| 欧美情侣在线播放| 亚洲一区二区三区精品视频| 成a人片国产精品| 蜜桃av一区二区三区电影| av在线这里只有精品| 久久91精品国产91久久小草| 亚洲一区二区三区中文字幕在线| 久久精品伊人| 欧美日韩免费高清| 国产精品一区二区三区网站| 亚洲成av人片一区二区| 欧美高清在线一区二区| 日韩丝袜美女视频| 久久久一二三| 一区二区精品| 欧美在线亚洲| 国产精品91xxx| 日本欧美大码aⅴ在线播放| 国产精品美女一区二区在线观看| 欧美成人高清电影在线| 欧美日韩激情在线| 久久一区欧美| 国产精品日韩精品欧美精品| 欧美日韩99| 99re热这里只有精品视频| 国产ts人妖一区二区| 久久99国产精品免费| 午夜精品久久久久久久蜜桃app| 日韩一区有码在线| 久久九九全国免费| 精品国产123| 欧美成人午夜电影| 欧美一级久久久| 4hu四虎永久在线影院成人| 日本黄色一区二区| 久久综合久久久| 久久蜜桃精品| 久久性天堂网| 久久性天堂网| 色丁香久综合在线久综合在线观看| 国产精品入口66mio| 国产视频在线观看一区| 亚洲欧洲一区二区天堂久久| 精品国产91洋老外米糕| 欧美欧美午夜aⅴ在线观看| 国产伦一区二区三区色一情| 韩国一区二区三区在线观看| 欧美日韩亚洲一区在线观看| 成人综合婷婷国产精品久久蜜臀| 国内久久精品视频| 韩国成人精品a∨在线观看| 国产一区二区美女| 老司机午夜精品| 精品无码三级在线观看视频| 国产综合色在线视频区| 久久99精品一区二区三区三区| 狠狠色狠狠色综合系列| 国产美女娇喘av呻吟久久| 精品一区二区三区蜜桃| 寂寞少妇一区二区三区| 国产一区在线看| 懂色av中文字幕一区二区三区| 成人avav影音| 午夜精品久久99蜜桃的功能介绍| 国产精品xvideos88| 在线观看欧美一区| 噜噜噜噜噜久久久久久91| 色悠久久久久综合欧美99| 欧美日韩国产经典色站一区二区三区| 欧美另类videos死尸| 色悠悠亚洲一区二区| 日韩综合在线视频| 在线观看精品一区| 日韩网站在线看片你懂的| 日韩精品中文字幕在线一区| 欧美精品一区二区精品网| 国产精品毛片无遮挡高清| 亚洲精品国产精品乱码不99| 日韩激情中文字幕| 国产成人精品一区二区三区四区 | 国产成人免费在线视频| 97se亚洲国产综合自在线不卡 | 成人av在线一区二区三区| 欧美激情视频一区二区三区在线播放 | 日本成人中文字幕在线视频| 国产精品一卡二卡在线观看| 91丨国产丨九色丨pron| 国产精品久久久久毛片大屁完整版 | 日韩av成人高清| 日韩理论片在线| 欧美一区二区三区免费| 另类图片国产| 国产成人精品一区二| 欧美99久久| 久久久久久久久久久一区| 91精品国产品国语在线不卡| 国产精品久久久久久久午夜片 | 国产亲近乱来精品视频 | 国产拍欧美日韩视频二区| 亚洲午夜视频在线观看| 国产精品99久久久久| 亚洲欧洲一区| 日韩视频一区二区三区在线播放| 中文字幕一区二区三区蜜月| 裸体在线国模精品偷拍| 欧美一区亚洲| 欧美日韩www| 亚洲精品欧美二区三区中文字幕| 国产一区二区不卡老阿姨| 亚洲国产成人不卡| 91精品国产91久久久久久最新毛片|