精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用STM32單片機進行ADC間斷轉換模式的應用實例說明

茶話MCU ? 來源:未知 ? 2019-08-03 11:50 ? 次閱讀

有時我們可能需要對多個ADC通道進行分組轉換,組與組之間希望有可調的時間間隔。比方像下面圖示的情形。先轉換頭2個通道,再轉換中間2個通道,之后轉換最后的2個通道。

如果我們采樣查詢或中斷方式,每轉換完2個通道后,然后做后續通道的切換配置再啟動AD模塊也是可以的。至于那個時間間隔我們往往會使用定時器來協助。顯然,這樣做有時會顯得有點繁瑣。

像上面這種情況,我們還可以考慮使用ADC的間斷轉換模式。即將一個ADC轉換通道序列分成幾組,每來一次ADC轉換觸發事件,就轉換一組AD通道,這樣依次進行直至整個序列轉換完畢。

比方,我們用到某ADC模塊的CH1/CH2/CH3/CH4/CH5五個通道,將它們分成3組,使用定時器觸發ADC。第一次觸發時,進行CH1/CH2兩個通道的AD轉換,第二次觸發時進行CH3/CH4兩個通道的AD轉換,第三次觸發時,完成CH5通道的AD轉換。 第四次觸發時進行跟第一次觸發一樣的轉換,這樣循環下去。

不妨基于上面的描述舉一個實際的例子演示一下。使用STM32F411-Discovery開發板來做調試驗證。用到ADC1模塊的從CH1開始的連續5個AD通道,被分成3組。如下圖所示。

我們使用定時器更新事件觸發ADC轉換,第1組與第2組轉換之間的間隔、第2組與第3組轉換的間隔通過適時調整定時器的計時長短來控制。

我們使用定時器更新事件觸發DMA,通過DMA修改ARR的值來調節相鄰兩組轉換之間的時間間隔。另外,ADC的轉換結果通過EOC事件觸發DMA,并由DMA將轉換結果有序地搬到指定的內存空間。

整個ADC序列的5個通道轉換完成后,進入ADC的DMA傳輸完成中斷,在中斷回調函數里對各個通道的轉換結果進行處理。之后,又可以開始下一輪ADC轉換。

將上面提到的整個實現過程稍微整理下:

1、ADC轉換依靠定時器的更新事件觸發,按照間斷模式進行分組轉換。

2、開啟了兩路DMA傳輸,1路用于ADC結果的搬運,另1路用于定時器ARR值的更新。

第1次定時觸發事件發生時,完成第一組AD通道【CH1、CH2】的轉換,同時觸發定時器的DMA傳輸,修改ARR的值,由其決定第1次觸發事件與第2次觸發事件的的時間間隔;當第2次定時觸發事件發生時,完成第二組AD通道【CH3、CH4】的轉換,同時觸發定時器的DMA傳輸,修改ARR的值,以決定第2次觸發事件與第3次觸發事件的時間間隔;當第3次觸發事件發生時,這里只做第3組AD通道【CH5】的轉換,不通過DMA對ARR進行修改,其值將在ADC的DMA傳輸完成中斷的回調函數里由用戶指定。

下面將整個配置和代碼實現的全過程貼出來,以供參考。使用STM32CubeMx工具進行圖形化配置,基于ST公司的STM32Cube庫來組織代碼。

假設第一組AD通道轉換后經過0x7000個時間單位觸發第二組AD通道的轉換,再過0x5000個時間單位觸發第三組AD通道轉換。【實際應用時,時基參數視具體情況而定】

一、基于CubeMx的配置【RCC/SYS的配置從略】。

1.1TIM3的配置,TIM3的更新事件觸發ADC轉換,并觸發DMA做ARR的更新。

1.2 ADC的配置。【選擇5個ADC通道,間斷轉換模式,啟用ADC的DMA傳輸】

二、生成初始化代碼。

基于STM32Cube庫,生成基于ARM KEIL MDK集成開發環境的工程代碼。

三、添加用戶代碼。【代碼基于STM32Cube庫】

首先介紹下用戶代碼里用到的2個數組,分別是Adc_Value[5]和Data_Arr[2].

其中Adc_Value[5]用來存放ADC通道的的轉換結果,Data_Arr[2]用來存放ARR的數據以改變計時周期。二者分別被不同的DMA流訪問。

3.1 在main()里添加如下用戶代碼。

第1行,清除定時器更新事件標志。

紅色方框內的兩行分別對ADC/TIM3的DMA傳輸做啟動配置。

第4行使能TIM3更新事件的DMA請求。

4、結果驗證。

硬件連接好,編譯代碼,運行后可以看到轉換結果。5個AD通道分為三組按預定時間間隔被依次觸發轉換,轉換結果被DMA搬到指定的內存空間。通過調試器,我們可以看到ADC結果及定時器ARR的相應變化。

小結:這里主要是拋磚引玉似地介紹下STM32芯片ADC間斷轉換模式,同時用到了定時器和DMA兩個外設。希望能給讀者帶來些參考或啟示,將來在自己的開發中變通使用。這幾個外設都是STM32芯片最常用、最基礎的外設,掌握之后若能靈活使用,會讓我們的STM32開發工作更加得心應手。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44516

    瀏覽量

    633032
  • adc
    adc
    +關注

    關注

    98

    文章

    6438

    瀏覽量

    544097
  • STM32
    +關注

    關注

    2266

    文章

    10871

    瀏覽量

    354812
  • 定時器
    +關注

    關注

    23

    文章

    3237

    瀏覽量

    114471

原文標題:STM32 ADC間斷轉換模式應用示例

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32和51單片機使用教程之實例說明資料免費下載

    本文檔的主要內容詳細介紹的是STM32和51單片機使用教程之實例說明資料免費下載包括了:51單片機12864貪吃蛇游戲的設計精講,
    發表于 10-17 16:53 ?31次下載
    <b class='flag-5'>STM32</b>和51<b class='flag-5'>單片機</b>使用教程之<b class='flag-5'>實例</b><b class='flag-5'>說明</b>資料免費下載

    單片機教程之單片機應用系統的設計與實例資料說明

    本文檔的主要內容詳細介紹的是單片機教程之單片機應用系統的設計與實例資料說明主要內容包括了:1 單片機應用系統的設計方法,2
    發表于 12-18 16:48 ?49次下載
    <b class='flag-5'>單片機</b>教程之<b class='flag-5'>單片機</b>應用系統的設計與<b class='flag-5'>實例</b>資料<b class='flag-5'>說明</b>

    如何實現STM32F407單片機ADC轉換

    ADC轉換是把外面輸入到引腳的電壓值轉換成數字信號,單片機里面有一個模擬至數字的轉換模塊,我們可以控制它采集引腳的電壓,
    發表于 12-26 15:08 ?2.7w次閱讀
    如何實現<b class='flag-5'>STM32</b>F407<b class='flag-5'>單片機</b>的<b class='flag-5'>ADC</b><b class='flag-5'>轉換</b>

    51單片機與計算機進行異步串行通信的實例說明

    本文檔的主要內容詳細介紹的是51單片機與計算機進行異步串行通信的實例說明
    發表于 08-08 17:33 ?2次下載
    51<b class='flag-5'>單片機</b>與計算機<b class='flag-5'>進行</b>異步串行通信的<b class='flag-5'>實例</b><b class='flag-5'>說明</b>

    如何配置minicom與51單片機進行串口通信詳細實例說明

    本文檔的主要內容詳細介紹的是如何配置minicom與51單片機進行串口通信詳細實例說明
    發表于 07-10 17:40 ?0次下載
    如何配置minicom與51<b class='flag-5'>單片機</b><b class='flag-5'>進行</b>串口通信詳細<b class='flag-5'>實例</b><b class='flag-5'>說明</b>

    使用STM32單片機進行電能測量的資料說明

    本文檔的主要內容詳細介紹的是設計使用STM32單片機和CS9505進行電能測量的資料說明
    發表于 04-25 08:00 ?4次下載
    使用<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b><b class='flag-5'>進行</b>電能測量的資料<b class='flag-5'>說明</b>

    使用STM32F103RB單片機實現ADC實驗的資料詳細說明

    本文檔的主要內容詳細介紹的是使用STM32F103RB單片機實現ADC實驗的資料詳細說明
    發表于 04-07 08:00 ?7次下載
    使用<b class='flag-5'>STM32</b>F103RB<b class='flag-5'>單片機</b>實現<b class='flag-5'>ADC</b>實驗的資料詳細<b class='flag-5'>說明</b>

    使用單片機實現ADC0832模數轉換與LCD顯示的C語言實例程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現ADC0832模數轉換與LCD顯示的C語言實例程序免費下載。
    發表于 03-30 16:49 ?56次下載

    使用單片機實現ADC0809模數轉換與顯示的C語言實例免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現ADC0809模數轉換與顯示的C語言實例免費下載
    發表于 03-31 11:20 ?26次下載

    單片機實例--ADC0809 AD轉換器基本應用

    單片機實例--ADC0809 AD轉換器基本應用(西工大現代電源技術考試)-該文檔為單片機實例-
    發表于 09-22 17:34 ?25次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>實例</b>--<b class='flag-5'>ADC</b>0809 AD<b class='flag-5'>轉換</b>器基本應用

    MSP430單片機F54系列的單片機內部的ADC轉換實例

    MSP430單片機F54系列的單片機內部的ADC轉換實例(深圳核達中遠通電源技術開發有限公司招聘)-?這是MSP430
    發表于 09-22 18:47 ?9次下載
    MSP430<b class='flag-5'>單片機</b>F54系列的<b class='flag-5'>單片機</b>內部的<b class='flag-5'>ADC</b><b class='flag-5'>轉換</b><b class='flag-5'>實例</b>

    STM32單片機雨滴模塊

    STM32單片機雨滴模塊提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔文章目錄STM32單片機雨滴模塊前言一、設備說明二、
    發表于 11-18 20:36 ?48次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>雨滴模塊

    STM32單片機ADC采集

    STM32單片機ADC采集
    發表于 11-18 20:36 ?75次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機</b><b class='flag-5'>ADC</b>采集

    STM8S單片機進行的光敏電阻ADC轉換功能

    使用STM8S單片機進行的光敏電阻ADC轉換功能介紹。
    發表于 04-06 14:27 ?8次下載

    基于STM32單片機ADC使用庫文件設計源代碼

    基于STM32單片機ADC使用庫文件設計源代碼
    發表于 04-26 15:07 ?6次下載