国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 | STM32CubeMX基礎(chǔ)之ADC

這篇具有很好參考價值的文章主要介紹了STM32 | STM32CubeMX基礎(chǔ)之ADC。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、ADC框圖
STM32 | STM32CubeMX基礎(chǔ)之ADC
  1. ADC輸入電源
STM32 | STM32CubeMX基礎(chǔ)之ADC
2. 輸入通道

這16個通道對應著不同的IO口,此外 ADC1 的通道 16 連接到了芯片內(nèi)部的溫度傳感器,通道 17連接到了VRefInt(內(nèi)部參照電壓)。

STM32 | STM32CubeMX基礎(chǔ)之ADC
3. 規(guī)則通道與注入通道
a)規(guī)則通道組:

i)相當正常運行的程序。最多16個通道。規(guī)則通道和它的轉(zhuǎn)換順序在ADC_SQRx寄存器中選擇,規(guī)則組轉(zhuǎn)換的總數(shù)應寫入ADC_SQR1寄存器的L[3:0]中。

ii)規(guī)則通道中的轉(zhuǎn)換順序由三個寄存器控制:SQR1、SQR2、SQR3,它們都是32位寄存器。SQR寄存器控制著轉(zhuǎn)換通道的數(shù)目和轉(zhuǎn)換順序,只要在對應的寄存器位SQx中寫入相應的通道,這個通道就是第x個轉(zhuǎn)換。

STM32 | STM32CubeMX基礎(chǔ)之ADC
STM32 | STM32CubeMX基礎(chǔ)之ADC
STM32 | STM32CubeMX基礎(chǔ)之ADC
b)注入通道組:

i)相當于中斷。最多4個通道。注入組和它的轉(zhuǎn)換順序在ADC_JSQR寄存器中選擇。注入組里轉(zhuǎn)化的總數(shù)應寫入ADC_JSQR寄存器的JL[1:0]中。

ii)和規(guī)則通道轉(zhuǎn)換順序的控制一樣,注入通道的轉(zhuǎn)換也是通過注入寄存器來控制,只不過只有一個JSQR寄存器來控制。

STM32 | STM32CubeMX基礎(chǔ)之ADC
4. 規(guī)則通道與注入通道

ADC需要一個觸發(fā)信號來實行模/數(shù)轉(zhuǎn)換,其一就是通過直接配置寄存器觸發(fā),通過配置控制寄存器CR2的ADON位,寫1時開始轉(zhuǎn)換,寫0時停止轉(zhuǎn)換。另外,還可以通過內(nèi)部定時器或者外部IO觸發(fā)轉(zhuǎn)換,也就是說可以利用內(nèi)部時鐘讓ADC進行周期性的轉(zhuǎn)換,也可以利用外部IO使ADC在需要時轉(zhuǎn)換,具體的觸發(fā)由控制寄存器CR2決定。

STM32 | STM32CubeMX基礎(chǔ)之ADC
5.轉(zhuǎn)換時間

ADC的每一次信號轉(zhuǎn)換都要時間,這個時間就是轉(zhuǎn)換時間,轉(zhuǎn)換時間由輸入時鐘和采樣周期來決定。

a)輸入時鐘

由于ADC在STM32中是掛載在APB2總線上的,所以ADC得時鐘是由PCLK2經(jīng)過分頻得到的。

b)采樣周期

ADC預分頻器的ADCCLK是ADC模塊的時鐘來源。通常,由時鐘控制器提供的ADC_CLK時鐘和PCLK2(APB2時鐘)同步。RCC控制器為ADC時鐘提供一個專用的可編程預分頻器。 分頻因子由RCC_CFGR的ADCPRE[1:0]配置,可配置2/4/6/8分頻。

為了保證ADC轉(zhuǎn)換結(jié)果的準確性,ADC的時鐘最好不超過14M。

STM32 | STM32CubeMX基礎(chǔ)之ADC
T = 采樣時間 + 12.5個周期,其中1周期為1/ADC_CLK

例如,當 ADC_CLK=14Mhz 的時候,并設(shè)置 1.5 個周期的采樣時間,則得到: Tcovn=1.5+12.5=14 個周期=1us。

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

轉(zhuǎn)換完成后的數(shù)據(jù)就存放在數(shù)據(jù)寄存器中,但數(shù)據(jù)的存放也分為規(guī)則通道轉(zhuǎn)換數(shù)據(jù)和注入通道轉(zhuǎn)換數(shù)據(jù)的。

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

規(guī)則數(shù)據(jù)寄存器負責存放規(guī)則通道轉(zhuǎn)換的數(shù)據(jù),通過32位寄存器ADC_DR來存放。當使用ADC獨立模式(也就是只使用一個ADC,可以使用多個通道)時,數(shù)據(jù)存放在低16位中,當使用ADC多模式時高16位存放ADC2的數(shù)據(jù)。需要注意的是ADC轉(zhuǎn)換的精度是12位,而寄存器中有16個位來存放數(shù)據(jù),所以要規(guī)定數(shù)據(jù)存放是左對齊還是右對齊。

STM32 | STM32CubeMX基礎(chǔ)之ADC

當使用多個通道轉(zhuǎn)換數(shù)據(jù)時,會產(chǎn)生多個轉(zhuǎn)換數(shù)據(jù),然而數(shù)據(jù)寄存器只有一個,多個數(shù)據(jù)存放在一個寄存器中會覆蓋數(shù)據(jù)導致ADC轉(zhuǎn)換錯誤,所以我們經(jīng)常在一個通道轉(zhuǎn)換完成之后就立刻將數(shù)據(jù)取出來,方便下一個數(shù)據(jù)存放。一般開啟DMA模式將轉(zhuǎn)換的數(shù)據(jù),傳輸在一個數(shù)組中,程序?qū)?shù)組讀操作就可以得到轉(zhuǎn)換的結(jié)果。

b)注入數(shù)據(jù)寄存器
STM32 | STM32CubeMX基礎(chǔ)之ADC
7.數(shù)據(jù)寄存器
STM32 | STM32CubeMX基礎(chǔ)之ADC
a)規(guī)則通道轉(zhuǎn)換完成中斷

規(guī)則通道數(shù)據(jù)轉(zhuǎn)換完成之后,可以產(chǎn)生一個中斷,可以在中斷函數(shù)中讀取規(guī)則數(shù)據(jù)寄存器的值。這也是單通道時讀取數(shù)據(jù)的一種方法。

b)注入通道轉(zhuǎn)換完成中斷

注入通道數(shù)據(jù)轉(zhuǎn)換完成之后,可以產(chǎn)生一個中斷,并且也可以在中斷中讀取注入數(shù)據(jù)寄存器的值,達到讀取數(shù)據(jù)的作用。

c)模擬看門狗事件

當輸入的模擬量(電壓)不再閾值范圍內(nèi)就會產(chǎn)生看門狗事件,就是用來監(jiān)視輸入的模擬量是否正常。

以上中斷的配置都由ADC_SR寄存器決定:

STM32 | STM32CubeMX基礎(chǔ)之ADC

鏈接:STM32—ADC詳解_stm32adc功能詳解_Aspirant-GQ的博客-CSDN博客

二、ADC的轉(zhuǎn)換模式
1. 單次轉(zhuǎn)換模式

ADC只執(zhí)行一次轉(zhuǎn)換;

2. 連續(xù)轉(zhuǎn)換模式(Continuous Conversion Mode)

轉(zhuǎn)換結(jié)束之后馬上開始新的轉(zhuǎn)換;

3. 掃描模式(Scan Conversion Mode)

ADC掃描被規(guī)則通道和注入通道選中的所有通道,在每個組的每個通道上執(zhí)行單次轉(zhuǎn)換。在每個轉(zhuǎn)換結(jié)束時,這一組的下一個通道被自動轉(zhuǎn)換。如果設(shè)置了CONT位(開啟了連續(xù) 轉(zhuǎn)換模式),轉(zhuǎn)換不會在選擇組的最后一個通道上停止,而是再次從選擇組的第一個通道繼續(xù)轉(zhuǎn)換。

掃描模式簡單的說是一次對所有所選中的通道進行轉(zhuǎn)換,比如開了ch0、ch1、ch4、ch5。ch0轉(zhuǎn)換完以后就會自動轉(zhuǎn)換通道1、4、5直到轉(zhuǎn)換完這個過程不能被打斷。如果開啟了連續(xù)轉(zhuǎn)換模式,則會在轉(zhuǎn)換完ch5之后開始新一輪的轉(zhuǎn)換。

4. 間斷模式(Discontinuous Conversion Mode)

觸發(fā)一次,轉(zhuǎn)換一個通道,在觸發(fā),在轉(zhuǎn)換。在所選轉(zhuǎn)換通道循環(huán),由觸發(fā)信號啟動新一輪的轉(zhuǎn)換,直到轉(zhuǎn)換完成為止。

間斷模式可以說是對掃描模式的一種補充。它可以把0、1、4、5這四個通道進行分組??梢苑殖?、1一組,4、5一組。也可以每個通道單獨配置為一組。這樣每一組轉(zhuǎn)換之前都需要先觸發(fā)一次。

三、ADC單通道與多通道
  1. ADC單通道

只進行一次ADC轉(zhuǎn)換:配置為“單次轉(zhuǎn)換模式”,掃描模式關(guān)閉。ADC通道轉(zhuǎn)換一次后,就停止轉(zhuǎn)換。等待再次使能后才會重新轉(zhuǎn)換。

進行連續(xù)ADC轉(zhuǎn)換:配置為“連續(xù)轉(zhuǎn)換模式”,掃描模式關(guān)閉。ADC通道轉(zhuǎn)換一次后,接著進行下一次轉(zhuǎn)換,不斷連續(xù)。

  1. ADC多通道

只進行一次ADC轉(zhuǎn)換:配置為“單次轉(zhuǎn)換模式”,掃描模式使能。ADC的多個通道,按照配置的順序依次轉(zhuǎn)換一次后,就停止轉(zhuǎn)換。等待再次使能后才會重新轉(zhuǎn)換。

進行連續(xù)ADC轉(zhuǎn)換:配置為“連續(xù)轉(zhuǎn)換模式”,掃描模式使能。ADC的多個通道,按照配置的順序依次轉(zhuǎn)換一次后,接著進行下一次轉(zhuǎn)換,不斷連續(xù)。

需要注意的是,如果開啟了多通道ADC,需要將每次轉(zhuǎn)換的數(shù)據(jù)及時取出,否則會被后面的的數(shù)據(jù)覆蓋掉。


鏈接:https://blog.csdn.net/as480133937/article/details/99627062

四、不同通道ADC采樣不同引腳的電壓示例
  1. STM32CubeMX設(shè)置
STM32 | STM32CubeMX基礎(chǔ)之ADC
  1. 主函數(shù)
    while (1)
    {

        int16_t adcBuf[2];
        for(int i=0;i<2;i++)
        {
            HAL_ADC_Start(&hadc1);
            HAL_ADC_PollForConversion(&hadc1,50);
            adcBuf[i]=HAL_ADC_GetValue(&hadc1);
            printf("adc %d = %d \r\n",i,adcBuf[i]);
        }
        HAL_ADC_Stop(&hadc1);
        HAL_Delay(1000);
    }
  1. 配置分析

分析配置成這樣的模式,掃描模式是在配置為多個通道必須打開的,CubeMX上也默認好了,只能使能。單次轉(zhuǎn)換模式是我不需要不停的去采集每個通道值,而是把兩個通道采集完以后就讓它停止。間斷模式可以讓掃描的兩個通道進行分成兩個組,CubeMX參數(shù)里面Number of Discontinous Conversions是配置間斷組每個組有幾個通道的,這里必須配置為1(否則在獲取ad值得時候只能讀取到每個間斷組最后一個通道)。


鏈接:https://blog.csdn.net/qq_35241004/article/details/120165458

  1. 輸出結(jié)果

這里將PC4引腳連接到了GND,PC5引腳連接到了3.3V。文章來源地址http://www.zghlxwxcb.cn/news/detail-459246.html

STM32 | STM32CubeMX基礎(chǔ)之ADC

到了這里,關(guān)于STM32 | STM32CubeMX基礎(chǔ)之ADC的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    時鐘配置HSI主頻配置64M ?勾選打開8個通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向一定要勾選Use Micro LIB ?獲取ADC通道值 主函數(shù)? ?串口輸出

    2024年02月15日
    瀏覽(31)
  • STM32CubeMX教程25 PWR 電源管理 - 睡眠、停止和待機模式

    開發(fā)板(正點原子stm32f407探索者開發(fā)板V2.4) STM32CubeMX軟件(Version 6.10.0) 野火DAP仿真器 keil μVision5 IDE(MDK-Arm) ST-LINK/V2驅(qū)動 XCOM V2.6串口助手 使用STM32CubeMX軟件配置STM32F407開發(fā)板的 PWR電源管理,并了解STM32的睡眠、停止和待機模式 睡眠模式可以立即進入,也可以在退出優(yōu)先級

    2024年02月19日
    瀏覽(37)
  • STM32初學入門筆記(3):STM32CubeMX配置STM32實現(xiàn)多通道ADC+DMA讀取模擬量

    STM32初學入門筆記(3):STM32CubeMX配置STM32實現(xiàn)多通道ADC+DMA讀取模擬量

    模擬信號的讀取是我們在做很多項目是都要用到的,而模擬量的讀取就要依賴于ADC數(shù)模轉(zhuǎn)換器。對于初學者,學習使用ADC可以很大的幫助以后的STM32學習。 目錄 ADC簡介 : DMA簡介:? 工程開始: STM32CubeMX配置區(qū): 配置外部時鐘: 配置調(diào)試: 配置ADC: 配置DMA: 配置串口: 配

    2024年02月09日
    瀏覽(31)
  • 野火STM32電機系列(六)Cubemx配置ADC規(guī)則和注入通道

    野火STM32電機系列(六)Cubemx配置ADC規(guī)則和注入通道

    前文已經(jīng)配置了GPIO、編碼器 本節(jié)講解CubeMXADC規(guī)則和注入通道 本文adc注入通道采用定時器觸發(fā),因此在上文定時器配置的基礎(chǔ)上進行 常規(guī)信號(溫度等)使用帶DMA的常規(guī)通道連續(xù)采樣 注入采樣由定時器觸發(fā),采集電機三相電流,并進入adc中斷執(zhí)行10khz的控制程序 ADC硬件接口

    2024年02月08日
    瀏覽(37)
  • STM32CubeMx實現(xiàn)ADC多通道+DMA讀取(HAL庫)

    STM32CubeMx實現(xiàn)ADC多通道+DMA讀?。℉AL庫)

    目錄 一、實驗結(jié)果 ?二、STM32CubeMx配置 三、main.c測試代碼 1、RCC配置 (外部晶振選擇8MHz。設(shè)置相應的分頻器M=8,倍頻器倍頻系數(shù)N=336,分頻器分頻系數(shù)P=2,那么主PLL生成的第一個輸出高速時鐘PLLP為:168MHz)? 2、SYS配置 ?3、ADC(規(guī)則)通道配置(獨立模式,預分頻4分頻,1

    2024年02月15日
    瀏覽(31)
  • STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)

    STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)

    12位ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達18個通道,可測量16個外部和2個內(nèi)部 信號源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右 對齊方式存儲在16位數(shù)據(jù)寄存器中。 模擬看門狗特性允許應用程序檢測輸入電壓是否超出用戶定

    2024年02月06日
    瀏覽(36)
  • STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    ?時鐘配置HSI主頻配置64M ?勾選打開8個通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?添加DMA ?DMA模式選擇循環(huán)模式 ?使能DMA連續(xù)請求 采樣時間配置160.5 轉(zhuǎn)換次數(shù)為8 ?配置好8次轉(zhuǎn)換的順序 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向

    2024年02月08日
    瀏覽(40)
  • STM32CubeMX學習筆記16--- STM32內(nèi)部FLASH

    STM32CubeMX學習筆記16--- STM32內(nèi)部FLASH

    1. 內(nèi)部FLASH簡介 ????????之前的文章中介紹過STM32F1利用SPI與外部FLASH(W25QXX芯片)通訊的例程,本例程將介紹STM32F1的內(nèi)部FLASH,通過內(nèi)部FLASH實現(xiàn)數(shù)據(jù)讀寫操作。 不同型號的STM32,其FLASH容量也有所不同,最小的只有16K字節(jié),最大的則達到了1024K字節(jié)。此處我們使用的是ST

    2024年04月09日
    瀏覽(29)
  • STM32開發(fā)(16)----CubeMX配置DMA

    STM32開發(fā)(16)----CubeMX配置DMA

    本章介紹使用STM32CubeMX對DMA進行配置的方法,DMA的原理、概念和特點,配置各個步驟的功能,并通過串口DMA傳輸實驗方式驗證。 DMA(Direct Memory Access),即直接存儲器訪問。 DMA 傳輸方式無需 CPU 直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場和恢復現(xiàn)場的過程,通過硬件為

    2024年02月15日
    瀏覽(23)
  • 【STM32】定時器1觸發(fā)ADC多(規(guī)則)通道采樣+DMA(CUBEMX配置)

    【STM32】定時器1觸發(fā)ADC多(規(guī)則)通道采樣+DMA(CUBEMX配置)

    在用單片機做電源控制時不得不提ADC采集,離散系統(tǒng)是有固定的執(zhí)行周期的,所以我們采樣也是要固定時間去采樣。然后就是我希望pwm波(定時器1產(chǎn)出)的頻率與采樣頻率一致。 我下面演示的是G431CBU6,當然其他芯片也大差不差了。 說一下大致流程,TIM1觸發(fā)ADC采樣,然后

    2024年02月01日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包