一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

STM32定時器單脈沖模式的一個應(yīng)用示例

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

結(jié)合到這里的應(yīng)用,我們可以將方案稍做調(diào)整。使用高級定時器【這里使用TIM1】的一個輸出通道來實現(xiàn)讀寫控制時序脈沖,計數(shù)器采用向上計數(shù)模式,定時器采用PWM1單脈沖輸出模式,輸出的脈沖個數(shù)跟DMA待傳輸?shù)臄?shù)據(jù)個數(shù)保持一致,仍然通過定時器比較事件觸發(fā)數(shù)據(jù)的DMA傳輸。這樣的話,定時器輸出指定個數(shù)的PWM后即自行停止輸出,不再需要軟件代碼的干預(yù),而且最后將輸出鎖定在高電平,剛好滿足設(shè)計要求?!咀ⅲ菏褂枚〞r器單脈沖輸出模式,當(dāng)定時器停止計數(shù)后,輸出端最后鎖定的電平跟所選用的PWM模式和RCR寄存器的值以及計數(shù)方式三者有關(guān)?!?/p>

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

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

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

__HAL_TIM_CLEAR_IT(&htimx,TIM_IT_UPDATE);

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5521

    瀏覽量

    219400
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364931
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118940

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

    MOSFET單脈沖雪崩擊穿能量的失效模式

    單脈沖雪崩擊穿能量(Energy during avalanche for single pulse),即 EAS。指的是MOSFET器件串聯(lián)感性負載時,在單次脈沖(工作到關(guān)斷)狀態(tài)下,所能承受的最大能量消耗,單位是焦耳(J),其值越大,器件在電路中遭遇瞬間過電壓或過電流
    的頭像 發(fā)表于 05-15 15:32 ?1317次閱讀
    MOSFET<b class='flag-5'>單脈沖</b>雪崩擊穿能量的失效<b class='flag-5'>模式</b>

    MCU定時器/計數(shù)

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

    STM32H750使用定時器比較通道觸發(fā)DMA操作GPIO,偶爾會發(fā)生第一個脈沖寬度過短怎么解決?

    RCC配置: DMA設(shè)置: 定時器設(shè)置: 生成的協(xié)議是dshot600 期望產(chǎn)生的效果是電平至少為560ns的高低電平 但是在實際測試的過程發(fā)現(xiàn)周期性的出現(xiàn)第一個
    發(fā)表于 03-11 06:11

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

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

    stm32一個定時器不同的通道,可以不同時的輸出pwm波形嗎?

    請問,stm32的同一個定時器,不同的通道,可以不同時的輸出pwm波形嗎?比如tim1的ch1輸出,延時幾毫秒后tim1的ch2輸出。 現(xiàn)在是要輸出兩相位不同的pwm波形,延時時間、
    發(fā)表于 03-07 08:20

    示波器和定時器的周期和頻率對不上

    我用了STM32F103C8T6開啟定時器輸出脈沖,不知道為什么我設(shè)置的周期應(yīng)該是1ms,我也打印出系統(tǒng)時鐘也沒什么問題,但是示波器測出來顯示2ms,有大佬遇到過相關(guān)問題能解答下嗎
    發(fā)表于 01-02 14:07

    脈沖模式調(diào)制的優(yōu)點是什么

    脈沖模式調(diào)制技術(shù)的些主要優(yōu)點: 1. 抗干擾能力強 脈沖模式調(diào)制的顯著優(yōu)點是其出色的抗干擾能力。由于
    的頭像 發(fā)表于 11-26 10:02 ?1106次閱讀

    高級定時器PWM輸入模式的配置方法

    我們將向大家介紹高級定時器的另一個常見應(yīng)用——PWM輸入模式。在本節(jié)課中,我們將先圍繞輸入捕獲模式展開,并重點描述PWM輸入模式和涉及的寄存
    的頭像 發(fā)表于 11-08 16:48 ?4381次閱讀
    高級<b class='flag-5'>定時器</b>PWM輸入<b class='flag-5'>模式</b>的配置方法

    數(shù)字單脈沖多普勒雷達與DSP教學(xué)

    電子發(fā)燒友網(wǎng)站提供《數(shù)字單脈沖多普勒雷達與DSP教學(xué).pdf》資料免費下載
    發(fā)表于 10-28 10:17 ?0次下載
    數(shù)字<b class='flag-5'>單脈沖</b>多普勒雷達與DSP教學(xué)

    使用TMS320C40 DSP實現(xiàn)單脈沖雷達的數(shù)字跟蹤

    電子發(fā)燒友網(wǎng)站提供《使用TMS320C40 DSP實現(xiàn)單脈沖雷達的數(shù)字跟蹤.pdf》資料免費下載
    發(fā)表于 10-28 10:04 ?0次下載
    使用TMS320C40 DSP實現(xiàn)<b class='flag-5'>單脈沖</b>雷達的數(shù)字跟蹤<b class='flag-5'>器</b>

    泰克信號發(fā)生脈沖模式應(yīng)用

    泰克信號發(fā)生在工程和科學(xué)領(lǐng)域得到了廣泛的應(yīng)用,其高精度和靈活性使其成為實驗室和生產(chǎn)環(huán)境中的重要工具之。在各種應(yīng)用中,泰克信號發(fā)生脈沖模式應(yīng)用尤其值得注意。本文將探討泰克信號發(fā)生
    的頭像 發(fā)表于 10-22 17:00 ?609次閱讀
    泰克信號發(fā)生<b class='flag-5'>器</b><b class='flag-5'>脈沖模式</b>應(yīng)用

    定時器的基本組成和工作模式

    定時器是計算機或電子設(shè)備中常見的硬件或軟件組件,其主要功能是測量和控制時間的流逝。它在各種應(yīng)用中起著至關(guān)重要的作用,如操作系統(tǒng)調(diào)度、多媒體播放、網(wǎng)絡(luò)通信、工業(yè)自動化控制以及家電設(shè)備的定時
    的頭像 發(fā)表于 08-19 18:28 ?2776次閱讀

    stm32定時器編碼模式可以做輸出嗎?

    我想要做正交編碼,但是網(wǎng)上般只介紹了用編碼對其做解碼,而我需要的是輸出波形。我在小網(wǎng)站的解答上看到
    發(fā)表于 07-31 07:59

    STM32F407同一個定時器的兩通道產(chǎn)生的PWM脈沖不對是哪里出了問題?

    STM32F407VE ,使用定時器1同時產(chǎn)生兩路PWM波 兩路PWM產(chǎn)生的脈沖數(shù)不樣時,實際產(chǎn)生的脈沖不對,會少1
    發(fā)表于 07-26 07:57