色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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工具的使用不熟或者說只是機械地使用該工具做配置,心里沒有些基本原理做支撐的話,遇到該問題時恐怕一時也的確難以找到方向。在此分享,權作提醒。

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

    關注

    456

    文章

    51155

    瀏覽量

    426314
  • uart
    +關注

    關注

    22

    文章

    1243

    瀏覽量

    101645
  • dma
    dma
    +關注

    關注

    3

    文章

    566

    瀏覽量

    100847

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    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(2)--USART通過DMA方式接收不定長數據

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

    RL78系列MCU DMAUART中的使用

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

    想在PWM的中點觸發ADC采樣,使用Cubemx配置一直實現不了,為什么?

    您好! 我現在遇到個問題,就是想在PWM的中點觸發ADC采樣,使用Cubemx配置一直實現不了,還請大神指點
    發表于 06-03 07:47

    stm32L051用cubemx配置不了CMOP是怎么回事?

    求教stm32L051用cubemx配置不了CMOP? 我用STM32CUBEMX配置了COMP1,程序里運行了初始化函數MX_COMP1
    發表于 05-06 07:07

    STM32F030F4上使用CubeMX配置ADC+DMA循環采集無法提取數據的原因?

    如題,使用STM32CubeMX配置了F030的ADC+DMA循環采集,ADC啟動后OVR一直處于置為狀態,但是DR寄存器輸出的數據又是正常的,我使用std庫已經配置并實現了功能,使用
    發表于 04-16 08:20

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC缺少DMA Settings配置是怎么回事?

    STM32CubeMX配置STM32L4R9ZI的硬件SDMMC1,缺少DMA Settings配置
    發表于 04-08 07:25

    STM32G071串口1無法使用DMA收發是為什么?

    單片機有UID(G030沒有UID),所以更換單片機為G071CB,使用CUBEMX配置,串口1和串口2都使用DMA收發數據,結果串口2的收發沒有任何問題,串口1發不出去數據,也接收不了
    發表于 04-01 07:46

    使用CubeMX生成STM32F103C8T6的DMA ADC代碼為什么無效?

    請問各位,我使用CubeMX生成STM32F103C8T6的DMA ADC代碼,工程配置請看附件,我運行如下代碼為什么無效: /* USER CODE BEGIN Includes
    發表于 03-29 06:08

    使用CubeMX配置STM32F407VGT6的SPI DMA發送16位數據,時鐘有波形的原因?

    使用CubeMX配置STM32F407VGT6的SPI DMA發送16位數據,時鐘有波形,MOSI無數據,上電就是高電平,其他CLK有波形的時候也還是高電平,發送的數據是0x0001和0x0000
    發表于 03-28 07:40

    關于STM32L051C8T6芯片LPUART+DMA接收問題求解

    ,其中UART2的接收是能夠回顯的。但是LPUART就無法做到回顯。兩者之間除了中斷優先級之外其他基本都一樣。我也查閱了文檔,看是否是STM32CUBEMX生成程序配置錯誤的原因,結果也不是。 是LPUART不支持
    發表于 03-28 07:05

    STM32F103使用cubemx配置ADC和DMA導致delay函數無法使用怎么解決?

    CUBEMX配置完adc和dma后在主函數中調用函數HAL_ADC_Start_DMA( hadc1,(uint32_t *) DMA_v
    發表于 03-28 06:21

    STM32U575VGT6 standard request mode配置之后用不了是怎么回事?

    這個standard request mode 配置了之后用不了,會有hard fault error define printf_dma(...)HAL_UART_Transmit_DMA
    發表于 03-12 06:19

    STM32F405 uart DMA收發數據輸出亂碼怎么解決?

    利用dma+ldle接收數據,使用STM32cubemx生成driver,使用hal庫發現僅能接收一次數據,然后串口busy無法再次觸發中斷,然后使用標準庫編寫測試代碼,數據接收問題解決,數據輸出
    發表于 03-08 07:38
    主站蜘蛛池模板: 亚洲不卡视频 | 一本道无码字幕在线看 | 台湾佬休闲中性娱乐网 | 把腿张开再深点好爽宝贝动态图 | 日本特殊精油按摩 | 国产MD视频一区二区三区 | 吃奶摸下的激烈免费视频 | 边做边爱免费视频播放 | 日本黄色成年人免费观看 | 国产成人精品免费青青草原app | 女人被躁到高潮嗷嗷叫免费 | 老师的蕾丝小内内湿透了 | 国产成人精品视频免费大全 | 久久WWW免费人成一看片 | 国产日韩久久久精品影院首页 | 成人毛片手机版免费看 | 国产成人一区二区三中文 | 国产精品爽爽久久久久久蜜桃 | 专干老肥熟女视频网站300部 | 日本工口生肉全彩大全 | 无码乱人伦一区二区亚洲一 | A级韩国乱理伦片在线观看 a级成人免费毛片完整版 | 夫妻性姿势真人做视频 | 成 人 片 免费播放 成 人 免费 黄 色 网站无毒下载 | 又爽又黄又粗又大免费视频 | 亚洲国产黄色 | 青柠视频在线观看高清HD | 兽交白浆喷水高潮 | 在线免费观看国产视频 | 4hu四虎免费影院www | 伦理片天堂eeuss影院2o12 | 在线观看亚洲免费人成网址 | 国产超碰人人爱被IOS解锁 | 国产在线一区二区三区四区 | 亚洲区 bt下载 | 久久资源365 | 亚洲色图激情文学 | 国产AV国产精品国产三级在线L | 久久se视频精品视频在线 | 日本漫画大全无翼乌 | 成人精品视频网站 |