在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32定時器主從級聯的應用示例分享

茶話MCU ? 來源:茶話MCU ? 作者:Miler ? 2021-11-26 11:45 ? 次閱讀

在STMCU中文社區有人咨詢了類似下面的應用問題,有部分需求如下:

1.發送12個周期為500ns的脈沖(高電平200ns,低電平300ns),每隔4us發送一次,共計三次(36個脈沖,每12個脈沖之間間隔4us)。

2.在第一步中的每段12個脈沖的上升沿時,訪問GPIO口,共計12個,三次共計36個。相關時序圖如下:

384a2dec-4ddc-11ec-9eda-dac502259ad0.png

這里,我們就該問題的部分需求聊聊它的大致實現。先整理下需求:

連續三組12個周期為500ns的指定個數的小脈沖;

一個固定時間間隔10us(含12個脈沖本身的時間);

每個小脈沖對應1次GPIO的訪問;

顯然,我們一般會很自然地想到通過TIMER來完成,可以使用1個TIMER,也可以通過2個TIMER來完成。

如果使用1個TIMER,我們可以考慮使用更新事件對脈沖個數的統計及時間間隔的控制,同時基于比較事件或更新事件來觸發DMA來實行對GPIO的訪問。不過,這里每個脈沖周期為500ns,勢必會發生頻繁進入更新中斷。

如果使用2個TIMER來實現起來就更為方便點。2個TIMER實現主從級聯,各自任務如下安排:

主TIMER做時間間隔的控制,每10us產生一次觸發事件,并開啟更新事件中斷,每發生3次更新事件即為一個大周期,后續啟動根據其它條件定,此處不表。

從ITMER工作在觸發從模式,同時選擇它的某一通道做PWM輸出,并工作在單脈沖模式,同時每個脈沖的比較事件觸發一次DMA實現GPIO與內存間的傳輸。

基于上面的需求及規劃,下面簡單介紹下實現過程。我們選用STM32G4系列的Nucleo板【Nucleo-G431RB】來進行驗證測試。

選擇TIM1工作在從模式,輸出脈沖的比較事件觸發DMA完成對GPIO的訪問。DMA每傳輸12個數據后進入DMA傳輸完成中斷,并進行相關數據處理。令TIM3工作在主模式,它的計時周期為10us,每個周期產生一次更新事件作為觸發輸出并與TIM1的觸發輸入相連,作為TIM1的啟動觸發信號

通過查看STM32G4系列參考手冊,我們可以得到如下片內定時器互聯信號表。TIM3的TRGO信號可以作為TIM1的觸發輸入通道2的輸入信號。

389a4174-4ddc-11ec-9eda-dac502259ad0.png

下面我們使用CubeMx進行配置。先看TIM1的相關配置【定時器計數時鐘為10MHz】:

3903d45e-4ddc-11ec-9eda-dac502259ad0.png

39914e4c-4ddc-11ec-9eda-dac502259ad0.png

39f5c20a-4ddc-11ec-9eda-dac502259ad0.png

再看看看TIM3的基本配置:

3a5e6396-4ddc-11ec-9eda-dac502259ad0.png

完成相關初始化配置后創建工程,然后添加必要的用戶代碼。代碼很簡單,開啟TIM1通道的pwm輸出,使能TIM1-ch1比較事件的DMA觸發功能,調用相關DMA功能函數,啟動TIM3的計數器。

3ace4bd4-4ddc-11ec-9eda-dac502259ad0.png

其中,TIM_DMAcptPro()為DMA傳輸完成中斷的回調函數,負責做相關數據的處理。TIM1的啟動靠TIM3的更新事件來觸發實現。

稍作編譯調試即可看到如下結果:

黃色的信號為TIM1周期的脈沖輸出,小脈沖間的間隔為4us.

藍色信號為通過DMA寫到GPIO的數據,高、低電平均代表一個數據。這些只是模擬下操作過程。

顯然,當弄清實現原理后,基于CubeMx進行配置,整個過程實現起來還是比較簡單的。這里需要我們對定時器的主從級聯、定時器各類事件、比較輸出的單脈沖模式的特性及對DMA運用有些了解。上面主要演示基于定時器主從模式的實現過程,更多細節還得閱讀相關技術手冊。

最后提醒個地方,現在是TIM3的更新事件去觸發啟動TIM1,顯然第一次啟動TIM1時需等待TIM3一個計數周期,如果不希望這樣的話,我們也可以在TIM3啟動的同時啟動TIM1計數,只需在啟動TIM3的同時手動產生個更新事件來實現。

編輯:jq

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

    關注

    23

    文章

    3254

    瀏覽量

    115074
  • dma
    dma
    +關注

    關注

    3

    文章

    566

    瀏覽量

    100752
  • 代碼
    +關注

    關注

    30

    文章

    4808

    瀏覽量

    68815
  • GPIO
    +關注

    關注

    16

    文章

    1215

    瀏覽量

    52227

原文標題:STM32定時器主從級聯的又一應用示例

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

收藏 人收藏

    評論

    相關推薦

    詳解CKS32F107xx系列的定時器同步功能

    我們將圍繞定時器同步功能概述展開,并以其中一種功能為例——將定時器2給定時器3當預分頻,最終級聯同步PWM輸出。
    的頭像 發表于 11-26 17:51 ?447次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時器</b>同步功能

    stm32f103vct6的高級定時器按通用定時器設置的,為什么沒有輸出?

    用的是Tim8,本來想用tim2作為主定時器控制tim8輸出的,結果就算我把主從去掉了也輸出不了,只看到高電平 用的是老代碼,標準庫,不知道之前也不習慣用高級定時器,不知道是不是有什么東西沒配置 代碼如下 還請各位大佬指點迷津
    發表于 07-23 07:58

    定時器的工作方式介紹

    定時器是計算機和嵌入式系統中常見的一種硬件模塊,用于實現定時和計數功能。定時器的工作方式通常由一組寄存來控制,這些寄存定義了
    的頭像 發表于 07-12 10:29 ?1058次閱讀

    STM32G4系列芯片定時器的延時輸出問題

    有人使用STM32G4系列芯片內部的多個定時器做PWM輸出,輸出頻率一樣,占空比也一樣,均為50%。可是,當他中途調整各個定時器以相同的工作參數,即改變ARR的值和CCR值后,會發現TIM2和TIM5兩個
    的頭像 發表于 07-01 09:45 ?1819次閱讀
    <b class='flag-5'>STM32</b>G4系列芯片<b class='flag-5'>定時器</b>的延時輸出問題

    鴻蒙開發系統基礎能力:Timer定時器

    設置一個定時器,該定時器定時器到期后執行一個函數。
    的頭像 發表于 06-28 11:33 ?1040次閱讀
    鴻蒙開發系統基礎能力:Timer<b class='flag-5'>定時器</b>

    stm32定時器的如何外部啟動?

    我想利用stm32定時器精確定時一個信號從發生到結束的時間,想讓定時器通過外部觸發開啟,一般有什么方法。
    發表于 05-10 06:40

    求助,關于STM32定時器級聯做計數的問題求解

    最近在做一個設計,使用STM32L1的定時器做一個大的計數,每當外部PPS信號進來后,利用捕獲功能來計算捕獲值。這個計數是采用定時器
    發表于 05-10 06:15

    如何實現一個軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過一個硬件定時器產生固定的時鐘節拍,每次硬件定時器中斷到,就對一個全局的時間標記加一,每個軟件
    的頭像 發表于 04-29 11:00 ?708次閱讀

    s7200定時器的五種故障介紹

    定時器或CPU故障:如果定時器本身或PLC的CPU出現故障,也可能導致定時器無法復位。此時,需要檢查定時器和CPU的工作狀態,確保其正常運行。
    的頭像 發表于 04-03 17:08 ?2599次閱讀

    STM32F407的定時器9和10怎么設置為主從關系?

    我準備用主從定時器來實現PWM脈沖個數的控制, 將主定時器的PWM輸出脈沖作為從定時器的時鐘,同時將從定時器的period設置為所需脈沖數,
    發表于 03-28 06:02

    ?PLC定時器介紹

    定時器是PLC中重要的編程元件,是累計時間增量的內部器件。大部分自動控制領域都需要定時器進行延時控制,靈活地使用定時器可以編制出復雜的控制程序。
    發表于 03-22 12:36 ?2522次閱讀
    ?PLC<b class='flag-5'>定時器</b>介紹

    如果STM32定時器外接了正交編碼,該剩余通道是否能做PWM輸出呢?

    其實,對于STM32芯片,編碼輸入信號就是定時器的計數時鐘源之一。定時器外接了編碼輸入,若還有剩余通道的話,剩余通道依然可以實現輸入捕獲或輸出比較功能。
    的頭像 發表于 03-21 09:06 ?1895次閱讀
    如果<b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>外接了正交編碼<b class='flag-5'>器</b>,該剩余通道是否能做PWM輸出呢?

    stm32主從定時器門控模式,怎么控制在不產生PWM時從定時器cnt不要計數?

    stm32主從定時器,采用門控模式,主定時器用單脈沖模式控制輸出。但是我在實驗的時候發現其從定時器cnt在主
    發表于 03-12 07:08

    使用555定時器的可調雙定時器電路

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關電路、占空比選擇、時鐘脈沖發生等。這也可用于各種應用,如精確
    的頭像 發表于 02-25 15:16 ?2326次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路

    定時器原理能控制馬達嗎為什么

    定時器原理可以用于控制馬達。馬達是一種將電能轉換為機械能的設備,通常由電動機和傳動裝置組成。定時器是一種電子設備,用來生成和計時精確而穩定的時間信號。通過將定時器與馬達控制電路相連,可以實現對馬達
    的頭像 發表于 01-23 15:21 ?699次閱讀
    主站蜘蛛池模板: 五月婷婷一区二区| 天天综合欧美| 精品国产第一国产综合精品gif | 日本zzzwww大片免费| 成人网在线| 久久sese| 日本黄色一区| 伊人成综合| 视频精品一区二区三区| 福利视频999| 美女大黄三级视频在线观看| 免费一级网站| 色综合天天综合给合国产| 综合一个色| 日本一区二区三区不卡在线视频| 免费大片看黄在观看| 丁香激情六月| 国产高清区| 777黄色片| 女bbwxxxx非洲黑人| vip影视免费观看| 国产精品免费久久久久影院| 视频在线观看免费| 午夜国产高清精品一区免费| 97成人免费视频| 成人午夜毛片| 台湾毛片| 激情五月在线| xxx69欧美| 高清xxx| a黄网站| 亚洲人成在线精品| 伊人成伊人成综合网2222| 日日噜噜噜夜夜爽爽狠狠 | 国产小视频在线观看www| 欧美jizzhd精品欧美4k| 手机在线看| 美国69bj| 性欧美高清强烈性视频| 天天摸天天做天天爽| 五月天在线播放|