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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

我們?cè)倏纯丛炊税醋止?jié)讀取,然后基于BURST功能打包,目的端按字來(lái)提取,看看結(jié)果又會(huì)怎么樣?

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

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

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

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

想到這里,不禁自我懷疑。難道配置哪里還有問(wèn)題,沒(méi)做到位?

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

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

難道問(wèn)題是在這里?此處有乾坤?

。。。。。。其實(shí),問(wèn)題真的就在這里。

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

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

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

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

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

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

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

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

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

這里涉及的用戶代碼很簡(jiǎn)單,也干脆貼過(guò)來(lái),供有需要的參考【初始化配置使用CubeMx】:

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

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

審核編輯 :李倩

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

    關(guān)注

    2310

    文章

    11171

    瀏覽量

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

    關(guān)注

    3

    文章

    582

    瀏覽量

    106014

原文標(biāo)題:基于STM32U5片內(nèi)GPDMA Burst傳輸應(yīng)用示例

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

    立即在GitHub上搶先體驗(yàn)面向STM32U5的最新STM32Cube HAL更新

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

    分享一個(gè)嵌入式學(xué)習(xí)階段規(guī)劃

    (2)可選項(xiàng)目:智能巡線避障小車(chē)、智能機(jī)械臂、STM32U5/F407 開(kāi)發(fā)、STM32U5 智能手表。
    發(fā)表于 09-12 15:11

    請(qǐng)問(wèn)GPDMA和DMA的區(qū)別是什么?

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

    請(qǐng)問(wèn)STM32U5不支持ST-LINK v2怎么辦?

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

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

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

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

    我使用的是STM32U585系列芯片,開(kāi)啟了IWDG,并在運(yùn)行模式下測(cè)試提前喚醒中斷正常觸發(fā),但在進(jìn)入STOP2模式后,提前喚醒中斷無(wú)法觸發(fā)導(dǎo)致無(wú)法喂狗,看門(mén)狗超時(shí)后芯片復(fù)位。 手冊(cè)中寫(xiě)道IWDG
    發(fā)表于 04-27 08:05

    請(qǐng)問(wèn)STM32U3系列的定位是怎樣的?

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

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

    我使用的是STM32U585系列芯片,開(kāi)啟了IWDG,并在運(yùn)行模式下測(cè)試提前喚醒中斷正常觸發(fā),但在進(jìn)入STOP2模式后,提前喚醒中斷無(wú)法觸發(fā)導(dǎo)致無(wú)法喂狗,看門(mén)狗超時(shí)后芯片復(fù)位。 手冊(cè)中寫(xiě)道IWDG
    發(fā)表于 04-24 07:50

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

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

    請(qǐng)問(wèn)STM32U3系列的定位是怎樣的?

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

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

    我使用的是STM32U585系列芯片,開(kāi)啟了IWDG,并在運(yùn)行模式下測(cè)試提前喚醒中斷正常觸發(fā),但在進(jìn)入STOP2模式后,提前喚醒中斷無(wú)法觸發(fā)導(dǎo)致無(wú)法喂狗,看門(mén)狗超時(shí)后芯片復(fù)位。 手冊(cè)中寫(xiě)道IWDG
    發(fā)表于 04-22 08:14

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

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