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

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

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

介紹一篇基于DMAMUX同步事件的應(yīng)用演示

單片機 ? 來源:茶話MCU ? 作者: Miler ? 2021-08-14 14:55 ? 次閱讀

STM32家族中的很多系列,比如STM32G0/STM32G4/STM32L4+/STM32H7等都內(nèi)置了DMAMUX模塊。有了它一方面使得DMA請求與DMA控制器之間的映射關(guān)系更為靈活方便,同時也大大拓展了DMA請求事件,不再局限于外設(shè)事件,比方可以基于GPIO的外部中斷事件、或者DMA事件本身來觸發(fā)DMA傳輸。另外,DMA傳輸?shù)膶崿F(xiàn)還可以基于其它觸發(fā)事件來同步其操作,即DMA傳輸?shù)膶崿F(xiàn)需要借助其它同步事件來真正啟動。

本文就基于STM32G4芯片簡單介紹下該話題,這里要實現(xiàn)的功能大致是這樣的:片內(nèi)低功耗定時器LPTIM1的定時輸出作為DMAMUX的DMA同步輸入事件,該同步事件觸發(fā)UART的DMA傳輸,通過UART輸出一段字符。

本演示例程基于STM32G4系列的Nucleo板進行。低功耗定時器LPTIM工作在PWM輸出模式,DMAMUX基于LPTIM每次的定時輸出事件為UART2申請一定數(shù)目的DMA請求,然后DMA將數(shù)據(jù)從內(nèi)存送到UART的數(shù)據(jù)寄存器并最終將內(nèi)容顯示在PC串口終端。

下面就直接使用STM32CubeMx進入配置過程。

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

LPTIM1的參考配置如下,具體應(yīng)用時請結(jié)合實際情況來定,這里只需能產(chǎn)生周期性定時輸出即可。

UART2外設(shè)沒有什么特別要提醒的,這里就不貼截圖了。我們重點看看有關(guān)UART TX的DMA傳輸?shù)南嚓P(guān)配置。

上圖中藍色圈里的勾選框?qū)τ诒緫?yīng)用演示不是必須勾選的,勾選了也沒關(guān)系,不會對本演示產(chǎn)生影響。DMA請求數(shù)設(shè)置為21,表示每檢測到1個同步事件后DMAMUX為UART傳輸申請21個DMA請求,以批量傳輸21個字符“STM32 DMA SYNCDEMO ”。

完成圖形化配置后,生成初始化代碼并添加必要的用戶代碼。

#definePeriodValue (1000)

#define PulseValue (500)

#define Size (21)

uint8_tpData[Size]={‘S’,‘T’,‘M’,‘3’,‘2’,‘ ’,‘D’,‘M’,‘A’,‘ ’,

‘S’,‘Y’,‘N’,‘C’,‘’,‘D’,‘E’,‘M’,‘O’,‘ ’,‘ ’};

HAL_LPTIM_PWM_Start(&hlptim1, PeriodValue, PulseValue) ;

HAL_UART_Transmit_DMA(&huart2, pData, Size);

編譯運行,驗證結(jié)果。

45dfbd00-fc1f-11eb-9bcf-12bb97331649.png

代碼運行后,可以通過示波器看到LPTIM的周期性PWM輸出,同時PC端也可以看到如上面截圖所示的周期性呈現(xiàn)的字符串。

OK,本次基于DMAMUX同步事件的應(yīng)用演示就介紹到這里,供君參考,更多細節(jié)還請閱讀STM32相關(guān)技術(shù)手冊。

編輯:jq

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

    關(guān)注

    113

    文章

    6164

    瀏覽量

    184317
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5118

    瀏覽量

    213170
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2056

    瀏覽量

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

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68236

原文標(biāo)題:基于STM32 DMAMUX DMA同步事件的應(yīng)用示例

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

收藏 人收藏

    評論

    相關(guān)推薦

    同步電機的主要特性是什么?簡單介紹

    同步電機是種交流電機,其轉(zhuǎn)子轉(zhuǎn)速與電網(wǎng)頻率保持恒定的比例關(guān)系,即同步轉(zhuǎn)速。這種電機在電力系統(tǒng)、工業(yè)驅(qū)動、發(fā)電機組等領(lǐng)域有著廣泛的應(yīng)用。以下是同步電機的
    的頭像 發(fā)表于 10-22 09:59 ?115次閱讀

    同步開關(guān)對多功能講解及演示

    案例簡介本案例主要講解E860-DTU(8080-400SL)(以下簡稱同步開關(guān))產(chǎn)品的主多從功能及使用案例,也就是平時所說的對多模式。設(shè)備可通過配置工具配置
    的頭像 發(fā)表于 07-26 08:21 ?237次閱讀
    <b class='flag-5'>同步</b>開關(guān)<b class='flag-5'>一</b>對多功能講解及<b class='flag-5'>演示</b>

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 基礎(chǔ)

    今天開始學(xué)習(xí)《大語言模型應(yīng)用指南》第一篇——基礎(chǔ),對于人工智能相關(guān)專業(yè)技術(shù)人員應(yīng)該可以輕松加愉快的完成此閱讀,但對于我還是有許多的知識點、專業(yè)術(shù)語比較陌生,需要網(wǎng)上搜索學(xué)習(xí)更多的資料才能理解書中
    發(fā)表于 07-25 14:33

    TSN時鐘同步 | PTP對時案例演示——基于NXP i.MX 8M Plus

    將該時間信息添加到該數(shù)據(jù)幀中。從節(jié)點獲取這些時間信息,并計算從節(jié)點本地時鐘與主時鐘的時間偏差和網(wǎng)絡(luò)節(jié)點之間的傳輸延時,對本地時鐘進行糾正,使之與主節(jié)點時鐘同步。 開發(fā)環(huán)境 本文主要介紹的是基于創(chuàng)龍科技
    發(fā)表于 07-10 10:28

    京準(zhǔn)電鐘 | NTP網(wǎng)絡(luò)時間同步協(xié)議原理及其應(yīng)用介紹

    京準(zhǔn)電鐘 NTP網(wǎng)絡(luò)時間同步協(xié)議原理及其應(yīng)用介紹
    的頭像 發(fā)表于 06-12 15:22 ?451次閱讀
    京準(zhǔn)電鐘 | NTP網(wǎng)絡(luò)時間<b class='flag-5'>同步</b>協(xié)議原理及其應(yīng)用<b class='flag-5'>介紹</b>

    請問STM32L4R5ZI的DMA/DMAMUX是怎么管理請求?

    原來的STM32系列,比如F1,是沒有DMAMUX這個東西的,DMA1的1通道2通道具體對應(yīng)什么樣的請求,有個專門的對應(yīng)表。但是現(xiàn)在的DMAMUX加進來以后,對于89個外設(shè)請求,并沒有地方說明什么請求對應(yīng)哪
    發(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

    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    有人通過公眾號微信留言,詢問是否有關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼。同時,個人也發(fā)現(xiàn),雖然STM32片內(nèi)的DMAMUX不是什么新模塊,似乎還是很多人并不太熟悉。這里借機聊聊這方面的內(nèi)容,重點演示相關(guān)功能的實現(xiàn),
    的頭像 發(fā)表于 03-25 09:15 ?2266次閱讀
    關(guān)于STM32 <b class='flag-5'>DMAMUX</b>模塊具體的應(yīng)用示例代碼

    永磁同步電機全速域矢量控制的全過程介紹

    直都想知道永磁同步電機的轉(zhuǎn)速從零增加到極限這個過程會發(fā)生什么,這篇文章介紹下永磁同步電機全速域矢量控制的全過程,即電機的轉(zhuǎn)速從零開始逐漸
    的頭像 發(fā)表于 03-15 09:29 ?1173次閱讀
    永磁<b class='flag-5'>同步</b>電機全速域矢量控制的全過程<b class='flag-5'>介紹</b>

    如果只做級觸發(fā)器同步,如何?

    如果只做級觸發(fā)器同步,如何? 級觸發(fā)器同步是指只考慮最基礎(chǔ)的觸發(fā)信息進行同步,而不考慮更高層次的關(guān)聯(lián)觸發(fā)信息。在這篇文章中,我將詳細
    的頭像 發(fā)表于 01-16 16:29 ?410次閱讀

    同步整流是什么 同步整流優(yōu)點介紹

    同步整流(Synchronous Rectification)是種用于提高功率轉(zhuǎn)換效率的技術(shù),主要用于開關(guān)同步整流(Synchronous Rectification)是種用于提高
    的頭像 發(fā)表于 01-12 15:19 ?2999次閱讀
    <b class='flag-5'>同步</b>整流是什么 <b class='flag-5'>同步</b>整流優(yōu)點<b class='flag-5'>介紹</b>

    適用于Linux的基于Rust的同步客戶端介紹

    個簡單而優(yōu)雅的 GUI 同步客戶端,提供雙向同步。
    的頭像 發(fā)表于 01-05 11:32 ?563次閱讀
    適用于Linux的基于Rust的<b class='flag-5'>同步</b>客戶端<b class='flag-5'>介紹</b>

    同步Buck和flyback自舉電容相關(guān)的問題

    上周四,有同學(xué)在微信群里問同步Buck和flyback自舉電容相關(guān)的問題,二火沒玩過flyback,只能說說同步Buck相關(guān)的內(nèi)容。我就找了2022年3月份發(fā)過的
    的頭像 發(fā)表于 12-19 16:20 ?975次閱讀
    <b class='flag-5'>同步</b>Buck和flyback自舉電容相關(guān)的問題

    同步和異步通信協(xié)議介紹

    同步與異步傳輸歸結(jié)為時鐘是外部的(同步)還是內(nèi)部的(異步)。異步協(xié)議的些例子包括UART、USB、CAN和以太網(wǎng)。同步協(xié)議的些例子包括S
    發(fā)表于 11-27 15:39 ?1561次閱讀
    <b class='flag-5'>同步</b>和異步通信協(xié)議<b class='flag-5'>介紹</b>

    同步整流和異步整流介紹

    同步整流 同步整流是采用Rdson較低功率MOS,取代了異步整流中續(xù)流二極管以降低續(xù)流損耗的種類型。由于功率MOS屬于電壓型器件。用功率MOS做整流器時,要求柵極電壓必須與被整流
    的頭像 發(fā)表于 11-20 16:52 ?2401次閱讀
    <b class='flag-5'>同步</b>整流和異步整流<b class='flag-5'>介紹</b>