女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

使用CubeMx怎么配置不了UART的DMA?

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-07-05 10:34 ? 次閱讀

STM32用戶反映,他目前使用STM32F407VE的芯片開發產品,在使用CubeMx做初始化配置時發現沒法給UART5配置基于該外設事件的DMA請求。他覺得很奇怪,堅信UART5是可以申請DMA傳輸的,而且他還基于早期CubeMx 版本配置過、使用過。

他剛好最近對CubeMx升級到5.5.0了,懷疑是不是STM32CubeMx5.5以上版本的bug。

說到這里,可能有人還不是沒完全明白具體怎么回事。我們結合他給過來得截圖一起來看看。他在對uart5做配置時出現的界面是下面這樣的,連那個DMA配置的菜單都沒有。

基于他的反饋,我用目前最新的CubeMX版本5.6.1進行驗證,同樣對STM32F407VE的UART5進行配置并試著為其申請DMA傳輸。經過測試并沒有碰到他所說的問題。

那問題出在哪兒呢?

我的測試工程只是單純使用到UART5,并未使用其它外設及相關DMA應用。我結合他反饋過來的配置截圖,隱約發現他的工程應用中并不僅僅使用一個UART5外設,還用到了其它外設。會不會是他在配置其它外設并申請DMA請求時,把UART5可以申請的DMA流占用了呢?

我們先不妨打開STM32F4系列參考手冊的DMA章節,看看有關外設事件與DMA傳輸流的映射關系圖。從手冊中我們可以看到,UART5的TX/RX事件能申請DMA毫無疑問,但只能申請DMA1_S0和DMA1_S7。

然而呢,可以申請DMA1_S0和DMA1_S7的外設事件又有很多,比方TIM4_CH1和TIM4_CH3就可以分別申請DMA1_S0和DMA1_S7。如果說,在做UART5事件的DMA配置之前,若有別的外設事件已經將DMA1_S0和DMA1_S7申請走了,這時UART5就應該沒得申請了。

基于上面分析,我們可以進一步驗證下。

我們使用上面提到得TIM4_CH1和TIM4_CH3先將DMA1_S0和DMA1_S7申請走,再來嘗試為UART5申請DMA,看看會怎么樣。結果CubeMX提示該外設請求無效,不能申請DMA了。如下圖所示:

提示界面跟客戶反饋的不太一樣,應該是CubeMx版本的差異所致。表達的基本意思還是相同的,即此時沒法為UART5事件申請DMA傳輸。

到此,客戶反饋的問題原因也基本清晰。像這種情況,由于UART5的TX/RX事件要申請的DMA流固定了,我們可以看看目前占用uart5欲申請的DMA流的外設,他們是否可以做調整去申請別的DAM流,從而避免競爭。因為有些外設事件可能申請的DMA流不只一條,當然這要結合具體的芯片。以STM32F4芯片為例,下圖中的TIM1_CH1,SPI1_RX,SPI1_TX可申請的DMA傳輸流都不只一條。

或許有人知道,STM32家族中有些系列支持DMAMUX,如果有它做DMA配置就更方便、高效。但不管怎樣,DMA請求事件肯定要遠遠多于具體實施傳輸的DMA流,所以具體應用中并不能保證有申請DMA資格的事件就一定申請得到相應的DMA傳輸。就像你有錢也有資格坐飛機坐高鐵,但并不能保證你時刻可以買到你期望的機票或火車票而成行。

再結合到本案例,遇到兩個外設事件對一個DMA傳輸流發生競爭不可避免的時候,若兩個外設對DMA的使用在時間上可以錯開的話,也還是有辦法解決的。我們可以使用CubeMx分別基于兩個外設的DMA請求事件生成兩套配置,然后手動調整代碼,需要使用哪個外設事件的DMA傳輸時就啟用相應的DMA配置及應用函數??傊?,搞清了怎么回事,結合具體應用靈活處理就好。

最后小結下。針對上面的客戶問題,如果對CubeMx工具的使用不熟或者說只是機械地使用該工具做配置,心里沒有些基本原理做支撐的話,遇到該問題時恐怕一時也的確難以找到方向。在此分享,權作提醒。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    459

    文章

    52199

    瀏覽量

    436290
  • uart
    +關注

    關注

    22

    文章

    1268

    瀏覽量

    103276
  • dma
    dma
    +關注

    關注

    3

    文章

    572

    瀏覽量

    102336

原文標題:使用CubeMx怎么配置不了UART的DMA?

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何才能拿到UART通過DMA收取回來的數據呢?

    你好,我想詢問一下UART使用DMA時收取數據的代碼。之前我是用的是非DMA模式,使用的函數是CyU3PUartReceiveBytes,但是其處理速度不符合我的要求。因此我使用DMA
    發表于 05-22 08:31

    使用Cubemx配置STM32H750VBT6的freertos連最基本的keil編譯都過不了,為什么?

    我使用Cubemx配置STM32H750VBT6的freertos連最基本的keil編譯都過不了,請問這是為什么啊?cubemx是最新版,keil使用v5v6編譯器都不行,顯示floa
    發表于 03-10 07:25

    使用STM32H743對外部一個ADC芯片做數據采集,根據CubeMX配置的驅動無法觸發SPI,怎么解決?

    最近使用STM32H743對外部一個ADC芯片做數據采集,想通過外部中斷信號觸發SPI DMA讀取數據(每次3byte),但根據CubeMX配置的驅動無法觸發SPI(無CLK時鐘信號發出)。 工程也
    發表于 03-07 07:40

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?658次下載

    工程師開發利器:STM32CubeMX 與 eDesignSuite 的協同開發

    的核心功能與優勢STM32CubeMX 是 ST 官方推出的圖形化配置工具,專為簡化 STM32 微控制器開發流程而設計。以下是其核心功能和優勢:硬件配置自動化支持 引腳分配與沖突檢測:通過圖形化
    的頭像 發表于 02-26 14:07 ?630次閱讀
    工程師開發利器:STM32<b class='flag-5'>CubeMX</b> 與 eDesignSuite 的協同開發

    STM32H743 UART DMA接收不到數據,為什么?

    #define BSP_USING_UART #define BSP_USING_UART3 #define BSP_UART3_RX_USING_DMA #define
    發表于 02-19 06:14

    在rtt studio使用qspi dma就是進不了中斷,為什么?

    的while循環語句中死等: 后來我在cubeMx如下配置dma: 然后用cubeMx生成mdk工程,在main()函數調用以下庫函數,能讀取w25q64的id, 證明其實
    發表于 09-27 07:03

    STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過DMA方式接收不定長數據

    概述 本篇文章主要介紹如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通過雙串口輸出打印。 直接存儲器訪問(DMA)用于在外設與存儲器之間以及存儲器與存儲器之間提供高速
    發表于 09-06 16:37

    MSPM0 UART通信中DMA和Ring Buffer環形緩沖的應用

    電子發燒友網站提供《MSPM0 UART通信中DMA和Ring Buffer環形緩沖的應用.pdf》資料免費下載
    發表于 09-05 11:01 ?0次下載
    MSPM0 <b class='flag-5'>UART</b>通信中<b class='flag-5'>DMA</b>和Ring Buffer環形緩沖的應用

    STM32CUBEMX(3)--ADC通過DMA方式采樣,USART打印

    的優先級。 本篇文章主要介紹如何使用STM32CubeMX實現ADC在DMA下快速采集,并且打印出去。 QQ群:615061293。 非DMA接收請查看: https://blog.csdn.net
    發表于 09-04 14:08

    STM32CUBEMX(2)--USART通過DMA方式接收不定長數據

    。 本篇文章主要介紹如何使用STM32CubeMX實現串口DMA讀取,并且打印出去。QQ群:615061293。 硬件準備 首先需要準備一個開發板,這里我準備的是NUCLEO-F030R8的開發板
    發表于 09-04 11:48

    揭秘車載VCU項目之外掛界的“大哥”DMA

    引腳配置此實例選擇CAN0進行配置。三、外設配置對于DMA,其采用的固定映射,對于通道0至通道15,其映射一部分外設,通道16至通道31映射一部分外設,所以對于外設要使用
    的頭像 發表于 07-30 08:11 ?1257次閱讀
    揭秘車載VCU項目之外掛界的“大哥”<b class='flag-5'>DMA</b>

    STM32G030F6串口空閑中斷配置卡死怎么解決?

    本人在用STM32G030F6 串口空閑中斷+DMA接受的時候,CubeMX配置完成,在mian函數while(1)前初始化,使能空閑中斷__HAL_UART_ENABLE_IT( h
    發表于 07-22 06:51

    RL78系列MCU DMAUART中的使用

    對于RL78系列的MCU,為了提高運行效率,減少CPU的占用,建議UART數據收發使用DMA功能。DMA(Direct Memory Access)是RL78 MCU內置的一個控制器,能在支持
    的頭像 發表于 07-17 14:24 ?1113次閱讀
    RL78系列MCU <b class='flag-5'>DMA</b>在<b class='flag-5'>UART</b>中的使用

    EspTouch for IOS V3.0為什么配置不了ESP8266?

    v0.22卻可以成功的配置 而最新的espTouch for IOS V0.3 卻配置不了ESP8266 請問要如何處理才能成功配置? 而且,ESP8266換成SDK V1.1
    發表于 07-15 08:16