国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

STM32定時器單脈沖模式的一個應用示例

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-05-14 09:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有人選用STM32系列的一款低功耗芯片STM32L431進行產品開發,在其應用中需要通過STM32芯片驅動一個小尺寸顯示屏,由于所選芯片不帶FSMC外設,所以就想使用GPIO來進行圖片數據的更新。顯示屏控制器數據寬度選用16位,通過GPIOA與之連接,另外,同時還用到一根口線模擬下面的讀寫控制線,該控制線平常為高電平。

在讀寫控制線的下降沿進行數據的準備,即MCU將圖形數據送到數據總線上,在讀寫控制線的上升沿顯示屏的控制器將數據取走。

這里我們想到了借助定時器輸出一路PWM信號模擬那根讀寫時序控制線,利用定時器的輸出比較事件觸發DMA,將數據送到GPIOA端口,然后在上升沿由屏控制器讀走數據。在DMA的傳輸完成中斷里關閉定時器的PWM輸出從而停止數據傳輸。

按照上面的思路來編程進行調試后發現個問題,那就是在DMA傳輸完成中斷里去關閉定時器的PWM輸出時,這個停止動作不能做到很及時,尤其在數據傳輸速率較高時,即這個PWM輸出停止操作有個延時,往往會導致多輸出幾個不必要的PWM脈沖。

比方本來計劃發送500個數據,讀寫控制線相應地也應該只輸出500個PWM脈沖信號,然后維持在高電平,但程序代碼是在完成了500個DMA數據傳輸后才去關閉定時器的PWM輸出,由于中斷響應的時間加上關閉定時器輸出的代碼執行時間可能會導致多輸出1個或2個不等的PWM脈沖后才停下來【說“可能”是因為它跟傳輸速率和處理代碼有關】,這些多輸出的脈沖雖不會觸發DMA傳輸了,但其上升沿還是會觸發顯示控制器的數據讀取操作,而這多讀取的數據并非正常操作,進而會影響產品功能。【下圖所示紅色脈沖即多出的PWM信號】

那有沒有辦法讓定時器的PWM輸出個數跟DMA傳輸的數據個數剛好一致呢?即若要傳輸500個數據也就剛好輸出500個PWM脈沖。這里有個比較簡單的辦法,就是使用STM32高級定時器的重復計數器和定時器輸的單脈沖輸出模式來實現上述要求。

所謂單脈沖輸出模式,其基本原理就是定時器的計數器開始工作后,當碰到定時器更新事件時則停止計數工作,從而實現有限個數脈沖的輸出。對于不帶重復計數器寄存器的通用定時器,若工作在PWM輸出模式,計數器啟動后輸出一個PWM脈沖則停止;若是帶重復計數器寄存器的高級定時器,工作在pwm輸出模式時,計數器啟動后則輸出指定個數的PWM脈沖后停止計數,具體的PWM脈沖輸出個數由RCR寄存器的值與所選擇的計數模式【向上計數模式、向下計數模式、雙向計數模式】決定。關于定時器單脈沖模式細節請查看STM32各個系列的參考手冊,下面閱讀推薦的《STM32定時器單脈沖輸出模式話題》也可以參考。

結合到這里的應用,我們可以將方案稍做調整。使用高級定時器【這里使用TIM1】的一個輸出通道來實現讀寫控制時序脈沖,計數器采用向上計數模式,定時器采用PWM1單脈沖輸出模式,輸出的脈沖個數跟DMA待傳輸的數據個數保持一致,仍然通過定時器比較事件觸發數據的DMA傳輸。這樣的話,定時器輸出指定個數的PWM后即自行停止輸出,不再需要軟件代碼的干預,而且最后將輸出鎖定在高電平,剛好滿足設計要求。【注:使用定時器單脈沖輸出模式,當定時器停止計數后,輸出端最后鎖定的電平跟所選用的PWM模式和RCR寄存器的值以及計數方式三者有關。】

比方要寫入10個【數據弄小點便于示波器觀察】圖形數據到顯示控制器。則配置RCR=10-1;采用PWM1單脈沖輸出模式,向上計數方式。通過示波器我們可以看到如下輸出:

這里比較巧妙地使用了高級定時器地單脈沖輸出模式,做到了MCU寫多少數據,屏控制器就讀取多少個數據,不多不少。

順便提醒一下,當完成定時器的初始化后,在使能定時器更新中斷或基于更新事件的DMA之前,記得對更新中斷事件標志位先做個清零操作,否則有時可能會給我們帶來些困擾,比方一使能定時器中斷就跳入中斷服務程序或者剛使能基于更新事件的DMA傳輸就發生DMA傳輸。ST固件庫中的參考代碼如下:

__HAL_TIM_CLEAR_IT(&htimx,TIM_IT_UPDATE);

該話題之前也多次提醒過,這里再提醒下。還是經常有人在應用中卡到這個地方。其原因是定時器初始化過程中使用了軟件更新操作觸發更新事件讓用戶配置的數據即時生效,同時它也使得定時器更新事件標志被置位了。

OK,上面主要是分享了一個基于高級定時器單脈沖輸出模式的一個應用示例及思路。如果是通用定時器,它沒有RCR寄存器,是否還可以實現上述功能呢?應該也是可以的,有興趣可以自行思考下。祝愿大家在STM32的產品開發過程中能對各個外設的功能及特性靈活運用,不斷開發出自己滿意的產品。

最后,讓我們祈禱眼前的新型肺炎疫情早點過去!愿一切盡早回歸正常!

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

    關注

    116

    文章

    5872

    瀏覽量

    225663
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373471
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123644

原文標題:STM32定時器單脈沖模式的一個應用示例

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32定時器及其中斷介紹

    裝載計數并由可編程預分頻驅動。GTIM 支持定時器模式、計數
    發表于 01-14 06:42

    LAT1173高精度定時器的同步功能應用筆記

    STM32G474 所含的高精度定時器(HRTIMER)其實包含了多個定時器,多個定時器之間可以單獨工作,也可以進行同步,且高精度定時器還能
    發表于 01-11 17:32 ?0次下載

    LAT1183+高精度定時器中 single-shot 計數模式不工作應用筆記

    PWM 輸出,在調試模式下發現該子定時器的計數直為 0,即計數直沒有啟動,但如果將計數
    發表于 01-11 17:28 ?0次下載

    吉時利數字源表2601A脈沖模式設置指南

    在半導體測試、材料特性分析以及精密電子設備研發領域,吉時利數字源表2601A憑借其卓越的電壓/電流源測量功能成為實驗室的核心設備。脈沖模式作為其高級應用之,能夠生成納秒級精度的電信號脈沖,為瞬態
    的頭像 發表于 12-17 16:10 ?327次閱讀
    吉時利數字源表2601A<b class='flag-5'>脈沖模式</b>設置指南

    實現嵌入式的軟件定時器

    1.什么是軟件定時器 軟件定時器是用程序模擬出來的定時器,可以由硬件定時器模擬出成千上萬
    發表于 12-10 08:29

    CW32A030微控制定時器

    脈沖寬度和周期、產生輸出波形(PWM、單脈沖、插入死區時間 的互補PWM 等)。 2 通用定時器(GTIM1..4) 內部集成4 通用定時器
    發表于 12-04 06:47

    CW32L0開發板學習記錄四,高級定時器ATIM學習

    (ATIM): 高級定時器 (ATIM) 包含 16bit 自動重載計數,并由可編程的
    發表于 12-01 07:35

    CW32定時器及中斷介紹

    裝載計數并由可編程預分頻驅動。GTIM 支持定時器模式、計數
    發表于 12-01 07:08

    單片機定時器中斷

    分頻后送來;另一個是T0或T1引腳輸入的外部脈沖源。如果定時器/計數工作在定時模式,則表示時間
    發表于 11-24 06:22

    SysTick系統滴答定時器簡介

    SysTick—系統定時器是屬于CM33內核中的外設,內嵌在NVIC中。系統定時器24
    的頭像 發表于 09-23 09:50 ?1630次閱讀
    SysTick系統滴答<b class='flag-5'>定時器</b>簡介

    定時器輸入捕獲模式

    AT32F4xx定時器輸入捕獲模式 支持型號: AT32F 系列 主要使用外設: TIMER、 USART 獲取示例 1 快速使用方法 1.1 硬件資源 AT-START-F403A V1.0
    發表于 09-22 09:58

    定時器同步之并行模式

    AT32F4xx定時器同步之并行模式 支持型號: AT32F 系列 主要使用外設: TIMER 獲取示例 1 快速使用方法 1.1 硬件資源 AT-START-F403A V1.0 實驗
    發表于 09-22 09:56

    STM32H7開啟單脈沖模式 PWM波脈沖寬度不受CCR控制怎么解決?

    我將定時器1作為從定時器定時器arr是49 也就是50us記完圈 CCR是25并且把定時器配置成了OPM
    發表于 06-18 07:14

    MCU定時器/計數

    架構與功能特性? 定時器類型與配置? 高級控制定時器?:支持互補PWM輸出與剎車功能,適用于電機驅動等高精度控制場景。通用定時器?:集成輸入捕獲、輸出比較、單脈沖模式等基礎功能?。 系
    的頭像 發表于 04-27 13:54 ?780次閱讀

    STM32F103高級定時器中,開啟單脈沖模式是不是會立刻清除計數器使能位?

    因為STM32F103的高級定時器重復計數寄存(RCR)的有效位只有8位,而我需要輸出超過256PWM脈沖,且保證每個
    發表于 03-10 07:34