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

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

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

簡(jiǎn)單介紹有關(guān)STM32的DMAMUX模塊

單片機(jī) ? 來源:茶話MCU ? 作者:茶話MCU ? 2021-08-14 15:10 ? 次閱讀

目前STM32家族中的很多系列,比如STM32G0/STM32G4/STM32L4+/STM32H7等都內(nèi)置了DMAMUX模塊。有了它一方面使得DMA請(qǐng)求與DMA控制器之間的映射關(guān)系更為靈活方便,另一方面也大大拓展了DMA請(qǐng)求事件,不再局限于外設(shè)事件,比方基于GPIO的外部中斷事件、或者DMA事件本身來觸發(fā)DMA傳輸。

關(guān)于DMAMUX的基本結(jié)構(gòu)及功能原理,這里就不說了,這里重點(diǎn)介紹基于STM32G4芯片,使用GPIO的外部中斷事件觸發(fā)DMA傳輸,通過DMA將內(nèi)存數(shù)據(jù)傳輸?shù)紾PIO端口的實(shí)現(xiàn)過程,包括基于CubeMx的配置、關(guān)鍵代碼及注意點(diǎn)。

本演示例程基于STM32G4系列的Nucleo板進(jìn)行,按鍵【PC.13】用來觸發(fā)中斷,該中斷事件被配置DMA請(qǐng)求源。板上有個(gè)LED燈與PA.5相連。例程中通過DMA傳輸來修改GPIOA輸出寄存器的內(nèi)容來改變亮燈情況。

要完成的任務(wù)很簡(jiǎn)單,按鍵產(chǎn)生外部中斷事件,外部中斷事件與DMAMUX的DMA請(qǐng)求生成器相連,進(jìn)而產(chǎn)生DMA請(qǐng)求,最后觸發(fā)相應(yīng)的DMA控制器完成數(shù)據(jù)傳輸。下面就直接進(jìn)入配置過程。

先通過CubeMx神器做基本的初始化配置【RCC配置就省略不提了】。

注意別忘了使能PC13腳所對(duì)應(yīng)的NVIC控制器配置,即下圖所示配置。

798284d0-fc1f-11eb-9bcf-12bb97331649.png

然后,對(duì)DMA進(jìn)行配置。配置也比較簡(jiǎn)單,見下圖。注意DMA請(qǐng)求源并非常規(guī)的外設(shè)事件,而是DMA請(qǐng)求發(fā)生器相關(guān)通道,關(guān)于它的配置在圖中下方的藍(lán)色方框那里。

79a7bcd2-fc1f-11eb-9bcf-12bb97331649.png

EXTI13事件作為DMAMUX的輸入請(qǐng)求信號(hào),每次中斷事件產(chǎn)生一個(gè)DMA請(qǐng)求,請(qǐng)求信號(hào)與DMA1的Channel1相連。為了便于演示,我這里將DMA傳輸配置成了循環(huán)模式。

基于上面配置生成初始化代碼,然后添加用戶代碼?;贖AL庫的關(guān)鍵用戶參考代碼如下:

DMA_HandleTypeDef hdma_dma_generator0;

uint16_t DataSource[]={0x5555,0xaaaa,0x5a5a,0xa5a5};

int main(void)

{

HAL_Init();

SystemClock_Config();

MX_GPIO_Init();

MX_DMA_Init();

/* USER CODE BEGIN 2 */

HAL_DMAEx_EnableMuxRequestGenerator(&hdma_dma_generator0);

HAL_DMA_Start(&hdma_dma_generator0 , (uint32_t)&DataSource,

(uint32_t)&(GPIOA-》ODR),4 );

/* USER CODE END 2 */

while (1)

{

}

}

順便提醒下,上面紅色代碼行可能是有些人容易忽視的地方,至少目前庫版本需要手動(dòng)添加這句。

最后,簡(jiǎn)單驗(yàn)證下??纯窗存I時(shí)是否發(fā)生GPIOA輸出的數(shù)據(jù)變化及燈亮暗。

驗(yàn)證過程是沒啥問題的,跟預(yù)期效果一致。這里特意分享整個(gè)實(shí)現(xiàn)過程以供有需要的工程師參考。有關(guān)STM32的DMAMUX模塊的簡(jiǎn)單介紹可以閱讀下面的文章《《STM32芯片中的DMAMUX是干啥用的》》。OK,下次再聊。

編輯:jq

聲明:本文內(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)投訴
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    569

    瀏覽量

    101754
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4866

    瀏覽量

    69791
  • HAL
    HAL
    +關(guān)注

    關(guān)注

    2

    文章

    71

    瀏覽量

    12845

原文標(biāo)題:通過STM32外部中斷觸發(fā)DMA傳輸

文章出處:【微信號(hào):aidanpianji,微信公眾號(hào):?jiǎn)纹瑱C(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    零基礎(chǔ)搭建基于STM32的M系列LoRa模塊透?jìng)骼蹋ㄉ希?/a>

    介紹本文適用于零基礎(chǔ),手把手教你搭建基于STM32單片機(jī)控制億佰特E22-M系列、E220-M系列和E32-M系列模塊,旨在降低M系列模塊開發(fā)難度,幫助大家更快上手M系列的模組。本次教
    的頭像 發(fā)表于 03-20 19:33 ?113次閱讀
    零基礎(chǔ)搭建基于<b class='flag-5'>STM32</b>的M系列LoRa<b class='flag-5'>模塊</b>透?jìng)骼蹋ㄉ希? />    </a>
</div>                            <div   id=

    STM32F103×8/STM32F103×B MCU手冊(cè)

    本文提供了STM32F103x8和STM32F103xB中密度高性能系列微控制器的訂購(gòu)信息和機(jī)械器件特性。有關(guān)整個(gè)STMicroelectronics STM32F103xx系列的更
    發(fā)表于 03-18 16:37 ?0次下載

    博世GTM IP模塊架構(gòu)介紹

    上篇文章我們介紹了博世GTM IP模塊的核心功能及基礎(chǔ)結(jié)構(gòu)模塊。本篇文章將繼續(xù)解析GTM模塊架構(gòu),重點(diǎn)介紹I/O
    的頭像 發(fā)表于 03-07 17:50 ?358次閱讀
    博世GTM IP<b class='flag-5'>模塊</b>架構(gòu)<b class='flag-5'>介紹</b>

    使用STM32H743對(duì)外部一個(gè)ADC芯片做數(shù)據(jù)采集,根據(jù)CubeMX配置的驅(qū)動(dòng)無法觸發(fā)SPI,怎么解決?

    HAL_SPI_Receive_DMA也可以進(jìn)行通信。 但EXTI0事件卻無法觸發(fā)同步SPI DMA傳輸,請(qǐng)問是否有大神知道,有哪些細(xì)節(jié)沒有配置到位嗎? 首次使用STM32H7,對(duì)DMAMUX不是很了解。
    發(fā)表于 03-07 07:40

    SiC MOSFET分立器件及工業(yè)模塊介紹

    BASiC國(guó)產(chǎn)SiC碳化硅MOSFET分立器件及碳化硅功率SiC模塊介紹
    發(fā)表于 01-16 14:32 ?1次下載

    STM32CubeMX的菜單介紹

    相信初學(xué)者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡(jiǎn)單講解一下。在新建工程這一欄里,我們最常用的是第一個(gè),它會(huì)彈出一個(gè)芯片列表供你選擇,然后就會(huì)創(chuàng)建一
    的頭像 發(fā)表于 12-25 21:03 ?296次閱讀
    <b class='flag-5'>STM32</b>CubeMX的菜單<b class='flag-5'>介紹</b>

    stm32藍(lán)牙模塊連接方法

    隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,藍(lán)牙技術(shù)因其低功耗、低成本和易用性而成為連接設(shè)備的首選無線通信技術(shù)之一。STM32系列微控制器因其高性能和豐富的外設(shè)接口而被廣泛應(yīng)用于嵌入式系統(tǒng)設(shè)計(jì)中。 硬件連接 1.
    的頭像 發(fā)表于 11-19 15:49 ?1620次閱讀

    STM32單片機(jī)的特點(diǎn)介紹

    STM32系列單片機(jī)是由ST廠商推出的單片機(jī),基于專為高性能、低成本、低功耗嵌入式應(yīng)用設(shè)計(jì)的ARM Cortex-M內(nèi)核,具備一流的外設(shè)配置,使其在功耗和集成度方面表現(xiàn)出色,STM32以其簡(jiǎn)單的結(jié)構(gòu)
    的頭像 發(fā)表于 09-25 17:19 ?3000次閱讀

    stm32單片機(jī)引腳介紹及功能

    特點(diǎn),廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備、智能家居等領(lǐng)域。本文將介紹STM32單片機(jī)的引腳及其功能。 1. 引腳概述 STM32單片機(jī)的引腳數(shù)量和類型因型號(hào)而異,常見的有48引腳、64引腳、100
    的頭像 發(fā)表于 09-02 09:38 ?9307次閱讀

    keras的模塊結(jié)構(gòu)介紹

    Keras是一個(gè)高級(jí)深度學(xué)習(xí)庫,它提供了一個(gè)易于使用的接口來構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。Keras是基于TensorFlow、Theano或CNTK等底層計(jì)算庫構(gòu)建的。以下是Keras的模塊結(jié)構(gòu)的介紹
    的頭像 發(fā)表于 07-05 09:35 ?525次閱讀

    SOC模塊LoRa-STM32WLE5有哪些值得關(guān)注

    思為無線最新推出的SOC模塊lora-STM32WLE5采用了ST公司的STM32WLE5芯片作為主芯片集成了LoRa、(G)FSK、(G)MSK和BPSK調(diào)制。該SOC模塊搭載了高性
    的頭像 發(fā)表于 06-27 17:39 ?1024次閱讀
    SOC<b class='flag-5'>模塊</b>LoRa-<b class='flag-5'>STM32</b>WLE5有哪些值得關(guān)注

    請(qǐng)問STM32L4R5ZI的DMA/DMAMUX是怎么管理請(qǐng)求?

    原來的STM32系列,比如F1,是沒有DMAMUX這個(gè)東西的,DMA1的1通道2通道具體對(duì)應(yīng)什么樣的請(qǐng)求,有一個(gè)專門的對(duì)應(yīng)表。但是現(xiàn)在的DMAMUX加進(jìn)來以后,對(duì)于89個(gè)外設(shè)請(qǐng)求,并沒有地方說明什么請(qǐng)求對(duì)應(yīng)哪一個(gè)通道。求助如何確
    發(fā)表于 04-28 06:19

    STM32L4R5的DMAMUX異常原因?

    __HAL_RCC_DMA1_CLK_ENABLE(); __HAL_RCC_DMAMUX1_CLK_ENABLE(); /*##-3- Configure the DMA
    發(fā)表于 04-19 06:36

    步進(jìn)電機(jī)的簡(jiǎn)單介紹

    步進(jìn)電機(jī)的命名,參數(shù),轉(zhuǎn)速簡(jiǎn)單介紹
    的頭像 發(fā)表于 04-17 21:40 ?1549次閱讀

    PCB星形接地的簡(jiǎn)單介紹

    從概念上講,星形接地涉及到構(gòu)建一個(gè)電氣系統(tǒng),系統(tǒng)中所有模塊或者設(shè)備都在一點(diǎn)接地。 最簡(jiǎn)單的方法是使用電源,其中負(fù)極端子(正極端子)被分支到不同的模塊中,將她們并聯(lián)在電路中。
    發(fā)表于 04-06 05:19 ?2201次閱讀
    PCB星形接地的<b class='flag-5'>簡(jiǎn)單</b><b class='flag-5'>介紹</b>

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品