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

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

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

3天內不再提示

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

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

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

圖片

這里使用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值做一次修改?!揪唧w使用中你可以自行根據具體需求來設計,這里僅供演示參考。貼出原始代碼主要是為了幫助理解整個思路?!?/p>

圖片

三、驗證最后結果。

圖片

圖片

圖片

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

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

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

    關注

    32

    文章

    2261

    瀏覽量

    94998
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115387
  • PWM波
    +關注

    關注

    0

    文章

    99

    瀏覽量

    16951
  • 定時器中斷
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11264
  • stm32cubemx
    +關注

    關注

    5

    文章

    284

    瀏覽量

    15006
收藏 人收藏

    評論

    相關推薦

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

    般來講,STM32定時器輸出基于同頻率的各路信號比較方便。但經常也會有人問使用STM32
    的頭像 發表于 07-06 15:57 ?2427次閱讀
    <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 ?1157次閱讀
    通斷電時間獨立<b class='flag-5'>可調</b><b class='flag-5'>定時器</b>

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

    這里使用STM32F302_Nucleo板來實現之。使用STM32常規定時器中的高級定時器TIM1來實現。當然,也并非定要TIM1,其它支
    的頭像 發表于 11-20 14:54 ?4132次閱讀
    <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 ?2950次閱讀

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

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

    如何實現軟件定時器?

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過硬件定時器產生固定的時鐘節
    的頭像 發表于 04-29 11:00 ?752次閱讀
    主站蜘蛛池模板: 特别黄的免费视频大片 | 欧美性猛交xxxx乱大交高清 | 夜夜夜爽爽爽久久久 | 天天视频免费观看高清影视 | 日本黄色大片免费观看 | 男女交性视频播放视频视频 | 天堂资源在线8 | 青草青青视频 | 大学生一级特黄的免费大片视频 | 黄色三级在线观看 | 黄色一级片毛片 | 乱色伦短篇小说 | 国内黄色录像 | 性夜影院爽黄a爽免费看网站 | 啪啪免费网站视频观看 | 三级毛片在线免费观看 | va在线观看 | 波多久久夜色精品国产 | yy4080午夜理论一级毛片 | 中文字幕一区二区视频 | 男男之h啪肉np文 | 性久久久久 | 性生交大片免费一级 | 国产精品美女在线观看 | 欧美在线观看视频一区 | 国产精品久久久久久久久久妇女 | 天天操夜夜操天天操 | 九九视频这里只有精品 | 国产亚洲一区二区三区在线 | 夜间免费小视频 | 亚洲国产精品自在现线让你爽 | 免费一区二区视频 | 免费黄色一级 | 一区二区高清在线观看 | 久久久久国产精品免费免费不卡 | 国产老肥熟xxxx | 国产精品久久久久久免费播放 | 高清精品女厕在线观看 | 久久天天躁狠狠躁夜夜 | 亚洲美女视频一区 | 亚洲精品精品一区 |