亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

STM32G4 UART+TIMER+DMA應(yīng)用示例

茶話MCU ? 來源:茶話MCU ? 2023-11-27 10:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這里使用STM32G4系列Nucleo開發(fā)板演示如下需求的實(shí)現(xiàn)過程。

TIMER2使用3個(gè)通道的PWM輸出,占空比可能被不時(shí)修改。修改的數(shù)據(jù)通過UART傳輸過來,UART接收的數(shù)據(jù)通過DMA傳輸?shù)絻?nèi)存。新的數(shù)據(jù)接收后,基于TIMER更新事件觸發(fā)DMA,利用TIMER的更新事件觸發(fā)DMA Burst 而一次性用新數(shù)據(jù)修改3個(gè)通道的CCR值以調(diào)整PWM輸出。每次新數(shù)據(jù)的接收允許以產(chǎn)生按鍵動(dòng)作為準(zhǔn),即每次按鍵動(dòng)作允許一次數(shù)據(jù)更新。

73121b38-8c23-11ee-939d-92fbcf53809c.png

這里有兩點(diǎn)要注意,TIM2是32位定時(shí)器,3個(gè)CCR數(shù)據(jù)使用32位格式。另外,3個(gè)數(shù)據(jù)的修改基于更新事件一次性修改,不能出現(xiàn)混亂,即不可以某一個(gè)時(shí)刻3個(gè)CCR寄存器的數(shù)據(jù)不是來自同一批的。為了避免數(shù)據(jù)混亂這種情況,我這里平常禁止TIMER2的更新事件的產(chǎn)生,只有每次收到新數(shù)據(jù)后才臨時(shí)允許更新事件的產(chǎn)生,并在TIMER觸發(fā)的DMA完成中斷里再次禁止更新事件的產(chǎn)生。

使用LPUART從外部接收新數(shù)據(jù),選用LPUART主要原因是它的TX/RX剛好跟G4Nucleo開發(fā)板的虛擬串口接在一起的,并無其它特別原因。至于按鍵就選用板載按鍵PC13,并開啟了對(duì)應(yīng)的外部中斷。

大致的數(shù)據(jù)傳輸流程如下圖所示:

73255220-8c23-11ee-939d-92fbcf53809c.png

關(guān)于定時(shí)器更新事件的能否產(chǎn)生的控制由TIMER的控制寄存器里的UDIS位決定:

734d78ea-8c23-11ee-939d-92fbcf53809c.png

我在代碼里對(duì)該位的操作,寫成宏的方式,便于閱讀。

73766a7a-8c23-11ee-939d-92fbcf53809c.png

該位默認(rèn)為0。若該位被軟件置1,定時(shí)器的更新事件將不能產(chǎn)生,意味著開啟預(yù)裝功能時(shí),影子寄存器內(nèi)容不能被更新,同時(shí)也不能因溢出操作、計(jì)數(shù)器復(fù)位操作而觸發(fā)相應(yīng)中斷或DMA請(qǐng)求 。

測(cè)試代碼的里幾個(gè)主要的基本操作:

一、響應(yīng)按鍵事件,啟動(dòng)UART的DMA接收。

HAL_UART_Receive_DMA(&hlpuart1,(uint8_t*)CCR_rx, 12);

二、基于UART事件的DMA接收完成中斷,允許TIMER更新事件的產(chǎn)生,并啟動(dòng)基于TIMER更新事件的DMA Burst 傳輸。

Permit_UpdateEvt; //Updated event permitted

HAL_TIM_DMABurst_MultiWriteStart(&htim2,TIM_DMABASE_CCR1,TIM_DMA_UPDATE,(uint32_t*)CCR_rx,TIM_DMABURSTLENGTH_3TRANSFERS,3);

三、基于TIMER事件的DMA完成中斷,禁止更新事件的產(chǎn)生,并基于串口通信提示可以接受下次數(shù)據(jù)更新。

__HAL_TIM_CLEAR_FLAG(&htim2,TIM_FLAG_UPDATE);

Forbid_UpdateEvt;//update event forbidden

Indicating_CCR_Updated();

再看看基本的CubeMx配置,配置比較簡(jiǎn)單。下面是LPUART的配置貼圖。

73839f4c-8c23-11ee-939d-92fbcf53809c.png

739e7fc4-8c23-11ee-939d-92fbcf53809c.png

我開啟LPUART 的DMA接收,其發(fā)送功能使用查詢阻塞模式,主要用來輸出一些提示信息。

下面是TIM2的一些基本配置截圖。開啟3個(gè)通道的PWM輸出和基于TIMER更新事件的DMA傳輸。

73affb46-8c23-11ee-939d-92fbcf53809c.png

73c055c2-8c23-11ee-939d-92fbcf53809c.png

最后,我們來簡(jiǎn)單驗(yàn)證下。下面截圖就是通過串口助手鍵入新數(shù)據(jù)后TIMER的輸出結(jié)果。

73d42066-8c23-11ee-939d-92fbcf53809c.png

整體上,操作流程就是每次按鍵操作提示可以修改占空比了;串口終端鍵入新的3個(gè)字的數(shù)據(jù),基于UART接收事件的DMA傳輸完成后提示數(shù)據(jù)收到;基于TIMER事件的DMA完成完成后提示數(shù)據(jù)更新結(jié)束,提示等待下次按鍵動(dòng)作。

好,今天的分享就到這里,下次再聊。如果有人想要完整的測(cè)試工程代碼的話,可以私下留言,只要時(shí)間不是過去太久且我這邊有保存的話,都可以分享供參考。

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

    關(guān)注

    8

    文章

    3163

    瀏覽量

    76027
  • STM32
    +關(guān)注

    關(guān)注

    2302

    文章

    11111

    瀏覽量

    370388
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1295

    瀏覽量

    105925
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    577

    瀏覽量

    105128
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6063

    瀏覽量

    111538

原文標(biāo)題:STM32G4 UART+TIMER+DMA應(yīng)用示例

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何使用STM32CubeMX HAL通過DMA + DAC生成STM32G474信號(hào)?

    我正在嘗試使用 DMASTM32G474 上使用 DAC 生成周期信號(hào)。有很多這樣的例子,我過去用 STM32L4 和 F4 也做過同樣的事情,沒有任何問題。但是,我不確定
    發(fā)表于 12-15 07:17

    請(qǐng)問STM32G4是不是不具備雙緩沖DMA功能???

    請(qǐng)問STM32G4是不是不具備雙緩沖DMA功能???
    發(fā)表于 12-16 06:08

    基于STM32G4芯片的DAC應(yīng)用示例分享

    。這里要演示的基本功能就是讓DAM將內(nèi)存數(shù)據(jù)周期性傳輸給DAC數(shù)據(jù)寄存器,最后輸出一路正弦波。 結(jié)合STM32G4芯片的特性,這里可以有兩種實(shí)現(xiàn)方式。 第一種,DMA的請(qǐng)求來自于DAC1的轉(zhuǎn)換事件。第二種,DMA的請(qǐng)求來自于定時(shí)
    的頭像 發(fā)表于 11-26 11:39 ?5805次閱讀
    基于<b class='flag-5'>STM32G4</b>芯片的DAC應(yīng)用<b class='flag-5'>示例</b>分享

    通過STM32 UARTDMA修改TIMER占空比示例

    現(xiàn)在有人談到這樣一個(gè)需求,他使用STM32F429芯片做開發(fā),其中用到TIM2做3路PWM輸出。另外有個(gè)上位機(jī)跟STM32UART接口相連,上位機(jī)可能不定期地需要通過UART接口給
    的頭像 發(fā)表于 11-12 15:33 ?3494次閱讀

    STM32G4 系列壽命估算

    STM32G4 系列壽命估算
    發(fā)表于 11-21 08:11 ?2次下載
    <b class='flag-5'>STM32G4</b> 系列壽命估算

    AN5306_OPAMP在STM32G4系列中的應(yīng)用

    AN5306_OPAMP在STM32G4系列中的應(yīng)用
    發(fā)表于 11-21 08:11 ?4次下載
    AN5306_OPAMP在<b class='flag-5'>STM32G4</b>系列中的應(yīng)用

    AN4232_STM32F3和 STM32G4的模擬比較器入門指南

    AN4232_STM32F3和 STM32G4的模擬比較器入門指南
    發(fā)表于 11-21 17:06 ?10次下載
    AN4232_<b class='flag-5'>STM32</b>F3和 <b class='flag-5'>STM32G4</b>的模擬比較器入門指南

    AN5310_使用STM32F3系列與STM32G4系列設(shè)備的模擬特性指南

    AN5310_使用STM32F3系列與STM32G4系列設(shè)備的模擬特性指南
    發(fā)表于 11-21 17:06 ?2次下載
    AN5310_使用<b class='flag-5'>STM32</b>F3系列與<b class='flag-5'>STM32G4</b>系列設(shè)備的模擬特性指南

    STM32G4系列安全手冊(cè)

    STM32G4系列安全手冊(cè)
    發(fā)表于 11-22 08:21 ?4次下載
    <b class='flag-5'>STM32G4</b>系列安全手冊(cè)

    UM2492_從STM32G4系列的STM32CubeG4開始的用戶手冊(cè)

    UM2492_從STM32G4系列的STM32CubeG4開始的用戶手冊(cè)
    發(fā)表于 11-22 08:21 ?4次下載
    UM2492_從<b class='flag-5'>STM32G4</b>系列的<b class='flag-5'>STM32CubeG4</b>開始的用戶手冊(cè)

    STM32G4電機(jī)驅(qū)動(dòng)實(shí)例

    電子發(fā)燒友網(wǎng)站提供《STM32G4電機(jī)驅(qū)動(dòng)實(shí)例.pdf》資料免費(fèi)下載
    發(fā)表于 07-31 17:00 ?9次下載
    <b class='flag-5'>STM32G4</b>電機(jī)驅(qū)動(dòng)實(shí)例

    基于STM32G4的電機(jī)控制項(xiàng)目開發(fā)

    電子發(fā)燒友網(wǎng)站提供《基于STM32G4的電機(jī)控制項(xiàng)目開發(fā).pdf》資料免費(fèi)下載
    發(fā)表于 08-01 16:35 ?19次下載
    基于<b class='flag-5'>STM32G4</b>的電機(jī)控制項(xiàng)目開發(fā)

    STM32G4 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問題

    STM32G4 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問題
    的頭像 發(fā)表于 09-28 18:02 ?1655次閱讀
    <b class='flag-5'>STM32G4</b> 應(yīng)用程序與 Option Bytes 同時(shí)燒錄問題

    STM32G4 Advanced Timer Break功能詳解

    電子發(fā)燒友網(wǎng)站提供《STM32G4 Advanced Timer Break功能詳解.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:09 ?3次下載
    <b class='flag-5'>STM32G4</b> Advanced <b class='flag-5'>Timer</b> Break功能詳解

    STM32G4市場(chǎng)和特性篇

    電子發(fā)燒友網(wǎng)站提供《STM32G4市場(chǎng)和特性篇.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 14:44 ?1次下載
    <b class='flag-5'>STM32G4</b>市場(chǎng)和特性篇