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

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

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

STM32U5系列TIMER+DMA+DAC應(yīng)用演示

茶話MCU ? 來源:茶話MCU ? 2024-01-24 09:10 ? 次閱讀

有人使用STM32U575芯片DAC功能。他希望使用TIMER事件觸發(fā)DMA,并通過DMA傳輸內(nèi)存數(shù)據(jù)到DAC輸出寄存器,進(jìn)而產(chǎn)生相應(yīng)的DAC輸出波形??伤恢绾闻渲肈MA并實(shí)現(xiàn)期望的DAC輸出,在ST公司提供的HAL庫里也沒有找到相關(guān)例程可以參考。

baa01174-ba4c-11ee-8b88-92fbcf53809c.png

我這里簡單演示一下實(shí)現(xiàn)過程,分享出來給有需要的人參考。

我使用TIM3的更新事件觸發(fā)DMA,每觸發(fā)一次搬運(yùn)一個數(shù)據(jù)到DAC數(shù)據(jù)寄存器。一共準(zhǔn)備了200個數(shù)據(jù),在定時器的觸發(fā)下令DMA循環(huán)搬運(yùn),讓DAC輸出一系列正弦波。我使用的開發(fā)板是STM32U575 Nucleo板。通過CubeMx進(jìn)行圖形化配置,并基于STM32HAL庫組織代碼。

先看TIM3的配置,主要是要用它的更新事件,PWM輸出不是必需的。

bab0735c-ba4c-11ee-8b88-92fbcf53809c.png

下面是DAC1的基本配置。用到其通道1的對外輸出,其它功能根據(jù)需要自行調(diào)整。

bacd7b96-ba4c-11ee-8b88-92fbcf53809c.png

基于TIM3的更新事件作為DMA請求觸發(fā)源進(jìn)行相關(guān)配置。DMA使用標(biāo)準(zhǔn)請求模式。源端是內(nèi)存數(shù)據(jù)【數(shù)據(jù)定義為無符號32位】,目的端為DAC數(shù)據(jù)保持寄存器【訪問寬度為32位】。DMA配置成Circular循環(huán)傳輸模式。 見下面的DMA配置截圖【使用GPDMA Channel 8】:

bae19b08-ba4c-11ee-8b88-92fbcf53809c.png

baf108fe-ba4c-11ee-8b88-92fbcf53809c.png

配置完成后,創(chuàng)建初始化工程。添加如下必要的用戶代碼。主要是準(zhǔn)備內(nèi)存數(shù)據(jù);開啟DAC工作;調(diào)用DMA啟動函數(shù);使能TIM3更新事件的DMA觸發(fā)功能;啟動TIM3定時器。我把本人所用代碼悉數(shù)貼出來,以供參考。至于通過CubeMx生成的初始化代碼就沒必要在這里貼出來了。

bb08442e-ba4c-11ee-8b88-92fbcf53809c.png

驗(yàn)證輸出結(jié)果?!鞠旅娼貓D中的藍(lán)色部分是TIMER的PWM輸出,沒展開?!?/p>

bb1bc012-ba4c-11ee-8b88-92fbcf53809c.png

整體上,要實(shí)現(xiàn)上述功能,首先DMA配置要正確;其次就是組織代碼時要適當(dāng)做些靈活調(diào)整;再就是那個DMA啟動函數(shù)里的數(shù)據(jù)個數(shù)要按源端的數(shù)據(jù)寬度和傳輸數(shù)據(jù)個數(shù)換算成總的字節(jié)數(shù),即一輪DMA傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)。比方這里,源端數(shù)據(jù)寬度為字【即4字節(jié)寬度】,最后設(shè)置總的傳輸個數(shù)時是數(shù)據(jù)個數(shù)乘以4。關(guān)于這點(diǎn)在本公眾號之前的其它文章里也特意討論過。

上面演示的DMA應(yīng)用,使用的是標(biāo)準(zhǔn)請求模式,如果使用鏈表模式也是可以的。有興趣的話可以自行驗(yàn)證測試。關(guān)于DMA鏈表模式的配置,在本公眾號的其它文章里也有介紹,記得也是基于STM32U5系列的。

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • dac
    dac
    +關(guān)注

    關(guān)注

    43

    文章

    2258

    瀏覽量

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

    關(guān)注

    3

    文章

    556

    瀏覽量

    100344
  • HAL庫
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    6144

原文標(biāo)題:STM32U5系列TIMER+DMA+DAC應(yīng)用演示

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

收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32U5STM32CubeMX環(huán)境搭建

    基于STM32U5STM32CubeMX環(huán)境搭建
    的頭像 發(fā)表于 09-21 17:35 ?1424次閱讀
    基于<b class='flag-5'>STM32U5</b> 的 <b class='flag-5'>STM32</b>CubeMX環(huán)境搭建

    STM32U5系列采用LPBAM進(jìn)行電源優(yōu)化

    STM32U5系列采用LPBAM進(jìn)行電源優(yōu)化
    發(fā)表于 11-21 08:11 ?0次下載
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>采用LPBAM進(jìn)行電源優(yōu)化

    如何校準(zhǔn)STM32U5 系列上的內(nèi)部RC振蕩器

    如何校準(zhǔn)STM32U5 系列上的內(nèi)部RC振蕩器
    發(fā)表于 11-21 08:11 ?0次下載
    如何校準(zhǔn)<b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>上的內(nèi)部RC振蕩器

    STM32U5 系列STM32Cube MCU 封裝示例

    STM32U5 系列STM32Cube MCU 封裝示例
    發(fā)表于 11-21 08:11 ?0次下載
    <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>的 <b class='flag-5'>STM32</b>Cube MCU 封裝示例

    STM32L5STM32U5系列的Arm?TrustZone?功能

    STM32L5STM32U5系列的Arm?TrustZone?功能
    發(fā)表于 11-21 17:06 ?0次下載
    <b class='flag-5'>STM32L5</b>和<b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>的Arm?TrustZone?功能

    STM32U5系列物聯(lián)網(wǎng)節(jié)點(diǎn)探索套件

    STM32U5系列物聯(lián)網(wǎng)節(jié)點(diǎn)探索套件
    發(fā)表于 11-22 08:21 ?0次下載
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>物聯(lián)網(wǎng)節(jié)點(diǎn)探索套件

    DB4410_帶有 STM32U5 系列的 IoT 節(jié)點(diǎn)探索套件

    DB4410_帶有 STM32U5 系列的 IoT 節(jié)點(diǎn)探索套件
    發(fā)表于 11-23 08:31 ?0次下載
    DB4410_帶有 <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>的 IoT 節(jié)點(diǎn)探索套件

    AN5701 STM32U5 系列STM32Cube MCU 包示例

    AN5701 STM32U5 系列STM32Cube MCU 包示例
    發(fā)表于 11-24 08:34 ?0次下載
    AN5701 <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>的 <b class='flag-5'>STM32</b>Cube MCU 包示例

    AN5676 如何在 STM32U5 系列上校準(zhǔn)內(nèi)部 RC 振蕩器

    AN5676 如何在 STM32U5 系列上校準(zhǔn)內(nèi)部 RC 振蕩器
    發(fā)表于 11-24 08:34 ?0次下載
    AN5676 如何在 <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>上校準(zhǔn)內(nèi)部 RC 振蕩器

    應(yīng)用筆記|如何在 STM32U5 系列上校準(zhǔn)內(nèi)部 RC 振蕩器

    目錄預(yù)覽 0.前言 1.STM32U5 系統(tǒng)時鐘 2.內(nèi)部 RC 振蕩器校準(zhǔn) 3.內(nèi)部 LSI 振蕩器測量 4.X-CUBE-RC-CALIB 演示 5.結(jié)論 0.前言 STM32U5
    的頭像 發(fā)表于 12-12 21:35 ?2026次閱讀

    STM32U5系列STM32Cube MCU包示例

    電子發(fā)燒友網(wǎng)站提供《STM32U5系列STM32Cube MCU包示例.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 10:09 ?2次下載
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>的<b class='flag-5'>STM32</b>Cube MCU包示例

    STM32U5系列使用LPBAM進(jìn)行功耗優(yōu)化

    電子發(fā)燒友網(wǎng)站提供《STM32U5系列使用LPBAM進(jìn)行功耗優(yōu)化.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 16:42 ?2次下載
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>使用LPBAM進(jìn)行功耗優(yōu)化

    STM32U5 LPBAM模式介紹

    STM32U5 LPBAM模式介紹
    的頭像 發(fā)表于 10-26 17:59 ?708次閱讀
    <b class='flag-5'>STM32U5</b> LPBAM模式介紹

    STM32CubeU5 STM32U5系列入門

    電子發(fā)燒友網(wǎng)站提供《STM32CubeU5 STM32U5系列入門.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 17:04 ?1次下載
    <b class='flag-5'>STM32CubeU5</b> <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>入門

    STM32U5介紹

    電子發(fā)燒友網(wǎng)站提供《STM32U5介紹.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:06 ?0次下載
    <b class='flag-5'>STM32U5</b>介紹