色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何用一個定時器實現3路時差和占空比可調的波形

冬至子 ? 來源:茶話MCU ? 作者:Miler ? 2023-07-06 15:22 ? 次閱讀

有人想實現下面的PWM輸出波形,三路頻率相同,占空比同步可調,且三路輸出波形時差固定為T/3。【下圖中橙色斜線是計數器周期性計數變化曲線示意圖】之前有過類似的話題交流,這里就整個實現過程再做下演示,并盡可能介紹詳細點。

圖片

這里使用STM32F302_Nucleo板來實現之。使用STM32常規定時器中的高級定時器TIM1來實現。當然,也并非一定要TIM1,其它支持多通道比較輸出且比較事件能觸發DMA的都可以。

其中,第一路使用TIM1_CH1,使用PWM1輸出模式,第二路使用TIM1_CH2,第三路使用TIM1_CH3,這兩路都使用Match Toggle輸出模式。

在TIM1更新中斷里修改通道1的CCR值,為修改CH2/CH3的CCR值做準備,最終通過CH2/CH3各自的比較事件觸發DMA,依靠DMA寫入CC2和CCR3寄存器而完成修改。注意,此時CH2/CH3通道的CCR寄存器預裝功能必須關閉。

圖片

一、基于STM32CubeMx的配置如下:

圖片

圖片

圖片

圖片

圖片

二、準備相關用戶代碼

圖片

主要準備上面幾句,代碼是我基于STM32Cube庫而編寫。

上面的第1/2句清除TIM1的更新中斷標志,有些情況下沒有這兩句會給我們帶來些麻煩或困惑。主要是防止一使能定時器更新中斷或相關DMA請求就進入中斷服務程序或觸發DMA傳輸,更多細節在之前文章中有詳細介紹過。這里就不重復了。

第3句、第4句、第6句功能差不多,開啟相應通道的比較輸出功能,其中開啟了基于CH2/CH3的比較事件的DMA觸發使能,并完成相關配置。

特別提醒第5句,這句是跟庫代碼有關聯的。庫代碼目前在調用定時器的DMA配置時,目前來看應該說有個bug,調用某個通道的DMA配置函數后,需要將狀態改為ready后才能有效調用后續其它通道的DMA配置函數。當然,我們如果不使用Cube庫代碼就不用這句了。

第7句只有TIM1/TIM8高級定時器才需要使用它,開啟TIM1/TIM8的主輸出功能。

另外,準備了跟DMA傳輸有關的兩個內存數組。其中紅色下劃線的數據在實際運行過程中會被動態修改而調整占空比。

圖片

在TIM1更新中斷里同步修改各個通道CCR的值,參考代碼如下。其中,Count_Update和i為兩個靜態字節變量。這里每發生256次更新事件后分別對3個通道的CCR值做一次修改。【具體使用中你可以自行根據具體需求來設計,這里僅供演示參考。貼出原始代碼主要是為了幫助理解整個思路。】

圖片

三、驗證最后結果。

圖片

圖片

圖片

上面三幅圖是3路PWM輸出信號在不同時間點的截圖,頻率固定,相差固定,占空比在改變。當然,我們也可以通過選擇合適的時間點來修改ARR值及通道2/通道3的初始相位值,以靈活調整輸出波形的頻率與相差。總之,STM32定時器的比較切換模式,再結合DMA的話,是個非常靈活好用的PWM輸出的實現方式,值得研究學習下。

當然,如果使用3個定時器建立主從關系,各拿出一個通道來實現上述輸出也很方便。

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

    關注

    32

    文章

    2261

    瀏覽量

    94897
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115215
  • PWM波
    +關注

    關注

    0

    文章

    99

    瀏覽量

    16925
  • 定時器中斷
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11244
  • stm32cubemx
    +關注

    關注

    5

    文章

    284

    瀏覽量

    14934
收藏 人收藏

    評論

    相關推薦

    定時器輸出4不同頻率波形的應用示例

    般來講,STM32定時器輸出基于同頻率的各路信號比較方便。但經常也會有人問使用STM32
    的頭像 發表于 07-06 15:57 ?2405次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>定時器</b>輸出4<b class='flag-5'>路</b>不同頻率<b class='flag-5'>波形</b>的應用示例

    何用STM32定時器實現周期輸出PWM2的波形

    請教各位如何用STM32定時器實現周期輸出PWM2的波形呢(低-高-低-高-低)?萬分感謝您
    發表于 04-03 06:39

    求助:如何用51單片機定時器輸出的兩相同占空比pwm?

    何用51單片機定時器輸出的兩相同占空比pwm?
    發表于 07-11 17:25

    何用定時器實現延時

    何用定時器實現延時,A strong man will struggle with the storms of fate.(Thomas Addison)  強者能同命運的風暴抗爭。(愛迪生)通用
    發表于 07-22 08:58

    simulink可調節的定時器

    simulink可調節的定時器實現定時器初步實現計時進階版結論定時器由于在網上找到的
    發表于 08-17 09:12

    何用定時器實現PWM?

    何用定時器實現PWM?
    發表于 10-08 06:21

    如何去實現定時器輸出一路PWM波形的設計呢

    PWM是什么?如何去實現定時器輸出一路PWM波形的設計呢?有哪些步驟?
    發表于 11-15 06:04

    何用定時器的四通道獨立地輸出四PWM脈沖?

    何用定時器的四通道獨立地輸出四PWM脈沖?
    發表于 12-21 07:59

    通斷電時間獨立可調定時器

    通斷電時間獨立可調定時器:IC1,IC2和IC3組成長時間間斷通電式定時電路。
    發表于 12-13 22:35 ?1156次閱讀
    通斷電時間獨立<b class='flag-5'>可調</b><b class='flag-5'>定時器</b>

    定時器實現3時差占空比可調波形

    這里使用STM32F302_Nucleo板來實現之。使用STM32常規定時器中的高級定時器TIM1來實現。當然,也并非定要TIM1,其它支
    的頭像 發表于 11-20 14:54 ?4111次閱讀
    <b class='flag-5'>定時器</b><b class='flag-5'>實現</b><b class='flag-5'>3</b><b class='flag-5'>路</b><b class='flag-5'>時差</b>和<b class='flag-5'>占空比</b><b class='flag-5'>可調</b>的<b class='flag-5'>波形</b>

    MSP430F5529通過定時器A產生兩反相頻率占空比可調PWM波

    了兩定時器產生兩反相的PWM波并通過捕獲比較捕獲其中
    發表于 11-19 20:36 ?3次下載
    MSP430F5529通過<b class='flag-5'>定時器</b>A產生兩<b class='flag-5'>個</b>反相頻率<b class='flag-5'>占空比</b><b class='flag-5'>可調</b>PWM波

    STM32單片機定時器輸出不同頻率PWM波

    (TIMx_CCRx)來設置占空比定時器只有自動重裝載寄存
    發表于 11-23 18:21 ?18次下載
    STM32單片機<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>定時器</b>輸出不同頻率PWM波

    怎么實現dsp芯片輸出占空比固定的pwm波形

    的比例。例如,占空比為50%表示高電平持續時間等于周期的半。在實現DSP芯片輸出占空比固定
    的頭像 發表于 12-26 17:28 ?2920次閱讀

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

    等。使用555定時器IC的可調定時器電路項目也是555定時器IC的應用之。通過使用這個項目,人們可以
    的頭像 發表于 02-25 15:16 ?2379次閱讀
    使用555<b class='flag-5'>定時器</b>的<b class='flag-5'>可調</b>雙<b class='flag-5'>定時器</b>電路

    如何實現軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過硬件定時器產生固定的時鐘節
    的頭像 發表于 04-29 11:00 ?730次閱讀
    主站蜘蛛池模板: 欧美精品99久久久啪啪 | 沙发上小泬12P | 最新无码国产在线视频9299 | 99视频免费在线 | 欧美内射深插日本少妇 | 国产偷抇久久精品A片蜜臀A | 欧式午夜理伦三级在线观看 | 公交车轮C关老师 | 麻豆蜜桃国语精品无码视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 蜜桃色欲AV久久无码精品 | 久久综合一个色综合网 | 久久久久久九九 | 国产在线观看91精品 | 野花视频在线观看免费最新动漫 | 综合色一色综合久久网vr | 甜性涩爱全集在线观看 | 99国产在线观看 | 亚洲精品久久久久69影院 | 97视频在线播放 | 亚洲精品中文字幕无码A片蜜桃 | 色鲁97精品国产亚洲AV高 | 精品麻豆一卡2卡三卡4卡乱码 | 色橹橹欧美在线观看视频高 | 97午夜理论片影院在线播放 | 在野外被男人躁了一夜动图 | 免费精品国偷自产在线 | 国产在线中文字幕 | 成年人免费在线视频观看 | 久久99国产精品无码AV | 国产亚洲精品成人AV久久 | 无码AV免费精品一区二区三区 | 爱穿丝袜的麻麻3d漫画acg | 午夜毛片在线观看 | 印度最猛性ⅹxxxxx | 一区二区三区无码被窝影院 | 亚洲午夜精品A片久久WWW软件 | 男同志video最新猛男 | 尤物99久久久合集一区区 | chinese情侣自拍啪hd | 亚洲视频在线免费 |