91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

使用STM32U5系列的GPDMA的burst傳輸功能

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-07-31 13:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有人想使用STM32U5系列的GPDMA的burst【分組、節(jié)拍、突發(fā)】傳輸功能,似乎遇到了點阻礙。我這里嘗試下,稍作演示,僅供參考。

我用TIMER1更新事件觸發(fā)DMA, DMA工作在非循環(huán)模式,DMA將數(shù)據(jù)從源內(nèi)存區(qū)傳輸?shù)侥康膬?nèi)存區(qū)。我先準備下面兩個數(shù)組。

7f73f59e-0fe3-11ed-ba43-dac502259ad0.png

7f85bcac-0fe3-11ed-ba43-dac502259ad0.png

當兩端訪問數(shù)據(jù)寬度設(shè)置一樣,burst大小始終為1時,傳輸是很順暢的,不會有啥問題,結(jié)果符合預期。

7fa470c0-0fe3-11ed-ba43-dac502259ad0.png

基于上面配置,結(jié)果就很正常。結(jié)果如下圖,也正是我期望的結(jié)果。

7fd4fda8-0fe3-11ed-ba43-dac502259ad0.png

當我們嘗試使用DMAburst功能時,發(fā)現(xiàn)結(jié)果就不對勁了,比方我希望源端按字節(jié)讀取,然后基于BURST功能打包,目的端按半字來提取,發(fā)現(xiàn)結(jié)果跟預期不一樣。我們一起看看:

7fe5daf6-0fe3-11ed-ba43-dac502259ad0.png

顯然,每半個字的高字節(jié)都是填充的0。那是怎么回事呢?

我們再看看源端按字節(jié)讀取,然后基于BURST功能打包,目的端按字來提取,看看結(jié)果又會怎么樣?

80037c3c-0fe3-11ed-ba43-dac502259ad0.png

結(jié)果變成了上面的那個樣子,顯然結(jié)果嚴重不符合預期。

那是怎么回事呢? 經(jīng)過反復修改參數(shù),結(jié)合我之前之前玩過F4系列DMA burst傳輸功能以及對STM32 DMA burst功能的理解,感覺這里的BUSRT傳輸應該是工作了。對DMA burst的基本配置以及我的用戶實現(xiàn)代碼還是比較自信的。而且目前結(jié)果上來看,有數(shù)據(jù)傳輸,且數(shù)據(jù)結(jié)果是有規(guī)律的,數(shù)據(jù)并不混亂,程序也沒跑飛,就是感覺數(shù)據(jù)好像在DMABURST傳輸過程中被處理過。

剛好這兩天也就隨機性瞄了下這塊,隱約記得它是有數(shù)據(jù)處理功能的?!菊f實話,U5系列DMA好復雜,比其它M4核STM32的DMA復雜很多。要沉下心來細看真不易??!】

想到這里,不禁自我懷疑。難道配置哪里還有問題,沒做到位?

繼續(xù)查看CubeMx界面下有關(guān)GPDMA的配置,嗯?我看到了一直被我無視的一個地方:

80219b4a-0fe3-11ed-ba43-dac502259ad0.png

難道問題是在這里?此處有乾坤?

。。。。。。其實,問題真的就在這里。

當我將那個DataHandling 配置由Disable轉(zhuǎn)為Enable基本恍然大悟了。

我們回過頭去查看手冊,手冊里面對GPDMA的數(shù)據(jù)處理功能也做了描述。下圖是相關(guān)描述里的一個表格截圖。

8032c1cc-0fe3-11ed-ba43-dac502259ad0.png

關(guān)于GPDMA的數(shù)據(jù)處理功能,這里就不解讀了,需要時我們可以自行研讀手冊。對STM32U5的DMA功能,我只能說:哇塞!功能真強大!

我們還是繼續(xù)回到上面的測試。當我使能Datahandling功能,并選中滿足我當前需求的一個選項后,一切便撥云見日。

8053b030-0fe3-11ed-ba43-dac502259ad0.png

注意上面截圖中那個關(guān)于數(shù)據(jù)對齊的選項。意思還是比較簡單明了,當源數(shù)據(jù)寬度小于目的端數(shù)據(jù)寬度時,按照目的端數(shù)據(jù)寬度打包擺放。

當我在前面BURST配置的前提下,再加上這個Data Handling配置就能輸出符合預期的結(jié)果了。

換句話說,我前面的DMA Burst基本配置是沒有問題的,只是沒有選擇合適的Data Handling方式導致沒有呈現(xiàn)我們預期的效果,這也正是它跟其它系列不一樣的地方。

這里涉及的用戶代碼很簡單,也干脆貼過來,供有需要的參考【初始化配置使用CubeMx】:

80687a88-0fe3-11ed-ba43-dac502259ad0.png

最后順便提醒一點,上面那個DMA啟動函數(shù)里的size變量【箭頭所指的地方】,是按照字節(jié)數(shù)來算的,這點要注意,這也是跟其它系列不一樣的地方。

審核編輯 :李倩

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

    關(guān)注

    2310

    文章

    11166

    瀏覽量

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

    關(guān)注

    3

    文章

    582

    瀏覽量

    105974

原文標題:基于STM32U5片內(nèi)GPDMA Burst傳輸應用示例

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    LAT1189+Timer 結(jié)合 DMA 2D 通道實現(xiàn)不同波形輸出應用筆記

    TIM 來定時切換輸出正弦波或固定電平。使用 TIM 輸出 PWM 產(chǎn)生正弦波形時,需要結(jié)合 GPDMA 來實現(xiàn)。在 STM32U5 系列中,GPDMA 共有 16 個獨立通道,其中
    發(fā)表于 01-11 17:25 ?0次下載

    【課程升級】STM32U5開發(fā)板《TouchGFX 圖形界面開發(fā)》,從快速入門到深度UI實戰(zhàn)教程

    好消息,華清遠見STM32U5開發(fā)板配套課程升級通知!本次升級計劃,主要致力于為初學者提供更深入、更實用的TouchGFX圖形界面開發(fā)學習體驗。01課程升級核心內(nèi)容快速入門,構(gòu)建完整學習路徑
    的頭像 發(fā)表于 11-04 11:05 ?480次閱讀
    【課程升級】<b class='flag-5'>STM32U5</b>開發(fā)板《TouchGFX 圖形界面開發(fā)》,從快速入門到深度UI實戰(zhàn)教程

    STM32U5A9J-DK探索套件技術(shù)解析與應用指南

    STM32U5A9J-DK采用ARM? Cortex??M33內(nèi)核(帶有Arm TrustZone?)構(gòu)建。該套件設(shè)計用于利用超低功耗導向特性、2.5MB嵌入式SRAM和4MB嵌入式閃存的強大功能
    的頭像 發(fā)表于 10-25 16:49 ?1728次閱讀
    <b class='flag-5'>STM32U5</b>A9J-DK探索套件技術(shù)解析與應用指南

    立即在GitHub上搶先體驗面向STM32U5的最新STM32Cube HAL更新

    其滿足您的需求。 如何獲取預覽版本 面向STM32U5系列STM32Cube HAL2預覽版已在GitHub代碼庫STM32CubeU5-V2-Preview中開放。 更新后的HAL
    的頭像 發(fā)表于 10-20 17:12 ?917次閱讀

    請問GPDMA和DMA的區(qū)別是什么?

    最近看到最新的芯片里面用到的DMA模塊寫的是GPDMA,好像通道多了不少,這只是最直觀的,還有哪些區(qū)別?看著還必須到GPDMA模塊去配置,不能在其他模塊直接配置了
    發(fā)表于 07-22 07:19

    請問STM32U5不支持ST-LINK v2怎么辦?

    STM32U5不支持ST-LINK v2怎么辦?
    發(fā)表于 06-09 07:59

    STM32U3 IIC通信后,SPI+GPDMA 進入循環(huán)發(fā)送,DMA無法使能寄存器USEF=1怎么解決?

    )); 現(xiàn)象:當data1=0x00 時,SPI+GPDMA正常發(fā)送,當data1不等于0x00 時比如0x01等,GPDMA并不能使能。把IIC代碼注釋了,能夠正常發(fā)送SPI+GPMDA。IIC確實是能通信的。
    發(fā)表于 06-09 07:05

    STM32U5 IWDG的提前喚醒中斷無法在STOP模式下觸發(fā)怎么解決?

    我使用的是STM32U585系列芯片,開啟了IWDG,并在運行模式下測試提前喚醒中斷正常觸發(fā),但在進入STOP2模式后,提前喚醒中斷無法觸發(fā)導致無法喂狗,看門狗超時后芯片復位。 手冊中寫道IWDG
    發(fā)表于 04-27 08:05

    請問STM32U3系列的定位是怎樣的?

    領(lǐng)先的每毫瓦 Coremark分數(shù)117。這幾乎是意法半導體之前 STM32U5系列效率的兩倍,是STM32L4系列的五倍。
    發(fā)表于 04-25 07:05

    STM32U5 IWDG的提前喚醒中斷無法在STOP模式下觸發(fā)怎么解決?

    我使用的是STM32U585系列芯片,開啟了IWDG,并在運行模式下測試提前喚醒中斷正常觸發(fā),但在進入STOP2模式后,提前喚醒中斷無法觸發(fā)導致無法喂狗,看門狗超時后芯片復位。 手冊中寫道IWDG
    發(fā)表于 04-24 07:50

    STM32U5驅(qū)動庫從1.6.0更新至1.7.0本可以正常運行的代碼出現(xiàn)問題了,怎么處理?

    我于近期更新了CUBEMXIDE為1.18.0,以前的代碼工程(STM32U5_1.6.0)提示說有新驅(qū)動庫(STM32U5_1.7.0)可以使用,隨即我便更新了驅(qū)動庫,然后燒錄出現(xiàn)問題,調(diào)試發(fā)現(xiàn)
    發(fā)表于 04-23 07:51

    請問STM32U3系列的定位是怎樣的?

    領(lǐng)先的每毫瓦 Coremark分數(shù)117。這幾乎是意法半導體之前 STM32U5系列效率的兩倍,是STM32L4系列的五倍。
    發(fā)表于 04-23 06:45

    STM32U5 IWDG的提前喚醒中斷無法在STOP模式下觸發(fā)怎么解決?

    我使用的是STM32U585系列芯片,開啟了IWDG,并在運行模式下測試提前喚醒中斷正常觸發(fā),但在進入STOP2模式后,提前喚醒中斷無法觸發(fā)導致無法喂狗,看門狗超時后芯片復位。 手冊中寫道IWDG
    發(fā)表于 04-22 08:14

    STM32U5?(超低功耗MCU,支持TinyML)全面解析

    精度。消費類設(shè)備語音助手 :利用低功耗麥克風陣列與關(guān)鍵詞識別模型(如“播放音樂”),實現(xiàn)離線語音交互。安全支付 :在POS終端中集成STM32U5的安全功能,保護交易數(shù)據(jù),同時支持AI反欺詐模型本地化
    的頭像 發(fā)表于 04-08 17:38 ?3968次閱讀
    <b class='flag-5'>STM32U5</b>?(超低功耗MCU,支持TinyML)全面解析

    為什么無法設(shè)置DMA傳輸大???

    ; LPC_GPDMA-> CH[7].CONTROL =(32)//傳輸大小 | (0x0 << 12)// src突發(fā)大小 | (0x0 << 15
    發(fā)表于 03-17 07:08