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

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

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

3天內不再提示

遠程修改STM32 TIMER占空比的方案

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-09-30 09:23 ? 次閱讀

現在有人有這樣一個需求,他使用STM32F429芯片做開發,其中用到32位的TIM2實現3路PWM輸出。

另外有上位機跟STM32的UART接口相連,上位機可能不定期地需要通過UART接口給STM32發送新的占空比參數,而且每次都發送3個比較輸出通道的參數【12個字節】。

如何快捷地實現這個功能呢?要求收到數據后盡快修改3個比較通道的參數。

e850fd1c-3ffb-11ed-b1c7-dac502259ad0.png

前一篇重點介紹了利用DMAFIFO和UART接收事件觸發DMA傳輸實現了3個CCR寄存器的批量修改。

我們不妨就該話題稍作拓展,不再局限于某個STM32系列,而是從整個STM32的資源上考慮當前需求。上次提到3種實現方案,我想借此機會再給大家介紹另外一種實現方案,以拓寬未來解決類似問題的思路。

STM32 家族里有些系列是內置DMAMUX模塊的,即DMA路由器,利用DMAMUX可以實現DMA請求與DMA傳輸通道的靈活配置;可以將一些通常不能直接產生DMA請求的事件通過它后而可以產生DMA請求;或者基于部分DMA完成事件產生新的DMA請求發起新的傳輸。目前,STM32家族中內置DMAMUX模塊的系列有下面這些:

e8be6a0a-3ffb-11ed-b1c7-dac502259ad0.png

那么 我這里就利用DMAMUX的其中一個特性,即通過它可以讓部分DMA完成事件產生新的DMA請求從而發起新的DMA傳輸。具體到這里,我們讓UART 的DMA接收完成事件映射到DMAMUX的DMA generator,再申請新的DMA請求,讓DMA將UART 接收到的數據從內存搬運到定時器的3個CCR寄存器,形成一個級聯模式。大致流程是:

上位機數據 經UARTRX+DMA 接收到內存, 然后DMA 接收完成事件 經DMAMUX申請的新的DMA請求和 DMA通道,再將內存數據寫到定時器的3個比較寄存器控制占空比。

下面我使用STM32G4系列芯片重點演示下實現過程,配置是關鍵。至于原理細節還請閱讀相關手冊。

我還是用UART1自發自收來模擬上位機發送新的CCR數據。

TIM2使用3個通道做PWM輸出,使用CubeMx工具的參考配置如下:

e8fe104c-3ffb-11ed-b1c7-dac502259ad0.png

我同樣開啟USART1的TX/RX事件的DMA傳輸功能。參考配置如下【注意UART RX DMA的配置與前一篇的差別】:

e9191c3e-3ffb-11ed-b1c7-dac502259ad0.png

e9b1e400-3ffb-11ed-b1c7-dac502259ad0.png

注意上圖中的事件使能及DMA請求配置。接著看看下面關于DMA generator的相關配置:

e9e4260e-3ffb-11ed-b1c7-dac502259ad0.png

請關注上圖中所有配置。其中,DMAMUX生成的DMA請求由DMA2_CH2響應,工作在Circular模式。

我依然使用32位TxData【3】數組存放待傳輸的3個CCR值,用RxData[3]存放接收的數據。使用CubeMx配置完成后,添加相關用戶代碼。【基于HAL庫組織代碼】

ea04b9be-3ffb-11ed-b1c7-dac502259ad0.png

我在UARTDMA接收完成中斷的回調函數里對接收到新數據事件做標志更新。

ea912034-3ffb-11ed-b1c7-dac502259ad0.png

為了便于演示,我依然在主程序里循環模擬遠程命令,動態修改CCR寄存器的值。參考代碼如下截圖:

eab43a92-3ffb-11ed-b1c7-dac502259ad0.png

稍作調試我們就可以查看輸出結果【借助斷點實時查看內存和寄存器的數據】:

eb8415aa-3ffb-11ed-b1c7-dac502259ad0.png

ebb9100c-3ffb-11ed-b1c7-dac502259ad0.png

從上面貼圖不難看出,從UART的發送數據、接收到的內存數據、寄存器的數據都在保持同步更新。

在上面演示過程中,我是將DMAMUX生成的新DMA請求申請的 DMA通道配置為Circular模式來著手測試的,如果配置為Normal模式也應該是可以的,只是需將Generator生成的新的DMA配置以及用戶代碼稍微做些調整,有興趣的話可以自行測試驗證。

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

    關注

    2270

    文章

    10895

    瀏覽量

    355743
  • 占空比
    +關注

    關注

    0

    文章

    109

    瀏覽量

    29074
  • uart
    +關注

    關注

    22

    文章

    1235

    瀏覽量

    101354

原文標題:遠程修改STM32 TIMER占空比的方案續1

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

收藏 人收藏

    評論

    相關推薦

    STM32 TIMER+DMA輸出PWM異常案例的問題解析

    有人使用STM32U575的TIMER加上DMA做PWM輸出。具體就是利用某TIMER的一個通道的比較事件觸發DMA,通過DMA修改CCR值來實現指定
    的頭像 發表于 09-28 09:04 ?8106次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>TIMER</b>+DMA輸出PWM異常案例的問題解析

    利用TIMER測量信號周期及占空比的精度

    有人使用STM32G4系列的通用型TIMER基于捕獲功能對外來信號進行周期及占空比的測量。他用TIM3產生頻率、占空比可調的PWM輸出做為被測信號。TIM4用來進行頻率測量,工作在復位
    的頭像 發表于 02-25 10:11 ?1387次閱讀
    利用<b class='flag-5'>TIMER</b>測量信號周期及<b class='flag-5'>占空比</b>的精度

    STM32F103 timer8配置PWM輸出中間出現無法輸出PWM現象

    我使用STM32F103中的timer8作為PWM的定時器,來驅動電機的控制橋,發現有的時候修改占空比后,配置的IO口無法輸出PWM波形,并且使用keil調試是程序上面沒有問題。同時我
    發表于 05-03 16:15

    教你一手 基于STM32Cube庫的Timer捕獲應用

    STMCU官網更新了一則實戰經驗文件,重點介紹利用STM32CubeMx初始化配置工具和STM32Cube庫如何通過TIMER的捕獲功能完成對頻率、占空比的測試,同時我們對如何解決實
    發表于 06-25 15:05

    CC2530 Timer3 P1_3做為PWM輸出,可以修改輸出頻率,無法修改占空比,請問怎么辦?

    CC2530 Timer3 P1_3做為PWM輸出,可以修改輸出頻率,無法修改占空比
    發表于 08-13 08:26

    請問STM32輸出比較模式如何同時修改占空比和相位?

    STM32輸出比較模式如何同時修改占空比和相位?
    發表于 10-15 11:29

    STM32F411REF產生不同占空比的PWM方波信號

    STM32F411REF產生不同占空比的PWM方波信號
    發表于 07-24 14:06 ?25次下載

    stm32捕獲占空比_基于STM32超聲波避障小車

    stm32捕獲占空比_基于STM32超聲波避障小車
    發表于 11-22 19:21 ?46次下載
    <b class='flag-5'>stm32</b>捕獲<b class='flag-5'>占空比</b>_基于<b class='flag-5'>STM32</b>超聲波避障小車

    stm32捕獲占空比_基于STM32超聲波避障小車

    stm32捕獲占空比_基于STM32超聲波避障小車
    發表于 11-23 16:21 ?56次下載
    <b class='flag-5'>stm32</b>捕獲<b class='flag-5'>占空比</b>_基于<b class='flag-5'>STM32</b>超聲波避障小車

    STM32產生固定頻率和占空比可變的PWM

    STM32產生PWM在筆者的上一個博客《STM32F103C8T6編寫簡單的程序并燒錄到板卡上》中,簡單介紹了如何產生一個PWM波,但讀者可能對設置PWM過程中修改的參數不是很理解。本篇博客將重點
    發表于 12-01 13:36 ?72次下載
    <b class='flag-5'>STM32</b>產生固定頻率和<b class='flag-5'>占空比</b>可變的PWM

    stm32捕獲占空比_「話說定時器系列」之七:STM32定時器比較輸出話題

    STM32定時器是 ST MCU 內部最基礎且常用的外設,實際應用尤為普遍。去年,電堂推出了《STM32 TIMER基礎及常規應用介紹》,為大家梳理了 STM32
    發表于 12-27 19:03 ?6次下載
    <b class='flag-5'>stm32</b>捕獲<b class='flag-5'>占空比</b>_「話說定時器系列」之七:<b class='flag-5'>STM32</b>定時器比較輸出話題

    通過STM32 UART及DMA修改TIMER占空比示例

    新的占空比參數,而且每次都發送3個輸出通道的比較參數。如何快捷地實現這個功能呢?要求收到數據后盡快修改3個比較通道的參數。
    的頭像 發表于 11-12 15:33 ?2504次閱讀

    如何遠程調試修改PLC

    PLC在現場,客戶拉一條能通網的網線,遠程就可以調試修改PLC。
    的頭像 發表于 07-05 10:12 ?3653次閱讀
    如何<b class='flag-5'>遠程</b>調試<b class='flag-5'>修改</b>PLC

    STM32L4定時器(TIMER)介紹

    電子發燒友網站提供《STM32L4定時器(TIMER)介紹.pdf》資料免費下載
    發表于 08-01 14:24 ?0次下載
    <b class='flag-5'>STM32</b>L4定時器(<b class='flag-5'>TIMER</b>)介紹

    STM32G4 Advanced Timer Break功能詳解

    電子發燒友網站提供《STM32G4 Advanced Timer Break功能詳解.pdf》資料免費下載
    發表于 09-19 15:09 ?1次下載
    <b class='flag-5'>STM32</b>G4 Advanced <b class='flag-5'>Timer</b> Break功能詳解
    主站蜘蛛池模板: 久久精品18| 亚洲高清无在码在线无弹窗| 国产熟妇无码一区二| 中文字幕一区二区视频| 挺进老师的紧窄小肉六电影完整版| 极品少妇粉嫩小泬啪啪AV| 边做边爱免费视频播放| 怡红院美国分院一区二区| 色四房播播| 男男h开荤粗肉h文1v1| 国产专区青青在线视频| 成年人视频在线免费| 真实伦 乱| 亚洲欧美自拍清纯中文字幕| 日本漂亮妈妈7观整有限中| 久久亚洲国产中文字幕| 黄色天堂在线| 国产精品人妻一区免费看8C0M| 99热久久这里只有精品| 一本色道久久综合亚洲精品加| 十分钟视频影院免费| 欧美性猛交xxxxxxxx软件| 毛片免费观看的视频| 久草在线在线精品观看99| 国产精品久久久久久久久无码 | 阿娇和冠希13分钟在线观看| 9亚洲欧洲免费无码在线| 在线观看亚洲免费人成网址| 亚洲国产成人在线| 亚洲高清免费在线观看| 桃花论坛POWERED2019| 日日摸天天添天天添无码蜜臀| 男人叼女人| 欧美高清video mr.sexo| 两个人的视频免费| 老头操美女| 久久九九精品国产自在现线拍| 精品动漫国产亚洲AV在线观看| 国产精品久久久久久影院| 国产哺乳期奶水avav| 国产成人拍精品视频网|