那曲檬骨新材料有限公司

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

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

3天內不再提示

STM32定時器觸發DMA數據傳輸失敗的原因如何解決

茶話MCU ? 來源:未知 ? 作者:易水寒 ? 2018-11-25 09:21 ? 次閱讀

有人使用STM32定時器事件觸發DMA,讓其將內存數據傳輸到通信外設的數據寄存器進行發送,發現DMA根本就不動作。

比方以基于STM32F411的芯片為例,通過TIM3更新事件觸發DMA請求,DMA從內存將數據送到SPI1?的數據寄存器,從而完成數據發送。

他采用CubeMx進行配置?;九渲萌缦拢篬文中圖片可以放大觀看]

?

相關用戶實現代碼如下:

從配置過程和代碼實現來看,似乎都沒有問題。那DMA怎么就是不動作呢?

問題出在我們使用上面的函數做DMA傳輸所關聯源端和目標端時,出現了想當然的情況。

我們利用TIMER事件來作為DMA請求源時,而作為數據傳輸的源端或目的端,都是我們用戶指定的。這時就一定要注意源端和目標端是當前DMA流所支持的。否則就會出現亂點鴛鴦譜,DMA根本可能就跑不起來。就像你叫了某快遞公司,它的服務范圍是相對固定的,并非你想去哪里她就能服務到哪里。

比方上面的例子,如果改成SPI2就沒問題。為什么剛才SPI1不行呢,因為DMA1根本訪問不到SPI1,我們不妨看看基于STM32F411芯片的內部功能及總線框圖就很清晰了。

從上圖不難看出DMA1是訪問不到SPI1或SPI4這些外設的,或者說DMA1就沒法訪問掛在APB2總線上的外設,只能訪問APB1總線上的外設。

小結:一般來講,基于某觸發事件,對應的DMA數據流就可以確定下來了,那該DMA數據流的傳輸范圍往往也隨之確定。我們在為該DMA數據流指定源端和目標端時一定要符合其傳輸范圍,否則會出現傳輸無法完成的情形。換言之,我們在做DMA傳輸時,為了實現DMA的有效傳輸,往往需要結合源端和目的端來調整或選擇合適的DMA數據流。結合前面的比方,如果這家快遞公司到不了,我們換一家可能就輕松解決了。

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

    關注

    2272

    文章

    10923

    瀏覽量

    357547
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115364
  • dma
    dma
    +關注

    關注

    3

    文章

    566

    瀏覽量

    100953

原文標題:定時器觸發DMA數據傳輸失敗之案例

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

收藏 人收藏

    評論

    相關推薦

    STM32通過DMA方式傳輸TIM3定時器計數值,數值重復是為什么?

    AD值防止數據錯亂,故DMA配置必須放在ADC之前。) 因此為了排除相同原因導致的數據重復,所以將DMA配置放在TIM3
    發表于 04-10 06:50

    STM32F103定時器觸發ADC+DMA傳輸 精選資料分享

    STM32F103定時器觸發ADC+DMA傳輸ADC除了軟件觸發方式之外還有外部
    發表于 08-11 06:05

    stm32 定時器觸發ADC多通道采樣+DMA提取數據相關資料下載

    stm32g0 定時器觸發ADC多通道采樣+DMA提取數據stm32g0
    發表于 02-15 06:46

    stm32數據傳輸的相關資料分享

    簡介DMA,全稱Direct Memory Access,即直接存儲訪問。DMA傳輸數據從一個地址空間復制到另一個地址空間,提供在外設和
    發表于 02-22 06:58

    DMA進行數據傳輸和CPU進行數據傳輸的疑問

    求大佬解答,本人正在學習STM32單片機中DMA直接數據存儲部分的內容 看了DMA簡介后,也上手過實例代碼,但是沒有實際的項目經驗,所以有以下疑問:
    發表于 05-25 17:18

    DMA數據傳輸(源代碼分享)

    手頭項目也需要加入DMA數據傳輸,以最大限度地提升CPU效率,于是測試了一下XMEGA的DMA模塊,把一塊內存中的數據DMA
    的頭像 發表于 04-27 09:22 ?9250次閱讀

    DMA數據傳輸在SPEAR300實現高速串口驅動設計

    DMA數據傳輸無需CPU的參與,是一種更加高效的數據傳輸方式?,F有的DMA數據傳輸方案都是基于DMA
    發表于 04-04 12:23 ?1655次閱讀
    <b class='flag-5'>DMA</b><b class='flag-5'>數據傳輸</b>在SPEAR300實現高速串口驅動設計

    測試代碼中使用DMA傳輸,定時器觸發ADC

    現在共用到ADC1模塊的4個ADC通道,即1個片內Vrefint通道和其它三個外部通道CH8,CH10,CH17。下面測試代碼中使用DMA傳輸定時器觸發ADC.
    的頭像 發表于 08-10 16:22 ?4552次閱讀
    測試代碼中使用<b class='flag-5'>DMA</b><b class='flag-5'>傳輸</b>,<b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>ADC

    STM32CUBEMX配置教程(十二)STM32定時器觸發的固定頻率ADC采樣(使用DMA

    STM32CUBEMX配置教程(十二)STM32定時器觸發的固定頻率ADC采樣(使用DMA
    發表于 11-24 13:51 ?85次下載
    <b class='flag-5'>STM32</b>CUBEMX配置教程(十二)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>的固定頻率ADC采樣(使用<b class='flag-5'>DMA</b>)

    STM32CUBEMX配置教程(十三)STM32定時器觸發的固定頻率DAC輸出(使用DMA

    STM32CUBEMX配置教程(十三)STM32定時器觸發的固定頻率DAC輸出(使用DMA
    發表于 11-24 14:06 ?47次下載
    <b class='flag-5'>STM32</b>CUBEMX配置教程(十三)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>的固定頻率DAC輸出(使用<b class='flag-5'>DMA</b>)

    STM32F103定時器觸發ADC+DMA傳輸

    STM32F103定時器觸發ADC+DMA傳輸ADC除了軟件觸發方式之外還有外部
    發表于 11-30 10:36 ?57次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>ADC+<b class='flag-5'>DMA</b><b class='flag-5'>傳輸</b>

    H743定時器觸發ADC轉換DMA傳輸之應用

    學習安富萊的H743的定時器觸發ADC DMA傳輸源碼
    發表于 11-30 11:21 ?11次下載
    H743<b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>ADC轉換<b class='flag-5'>DMA</b><b class='flag-5'>傳輸</b>之應用

    stm32 定時器觸發ADC多通道采樣+DMA提取數據

    stm32g0 定時器觸發ADC多通道采樣+DMA提取數據stm32g0
    發表于 12-16 16:56 ?68次下載
    <b class='flag-5'>stm32</b> <b class='flag-5'>定時器</b><b class='flag-5'>觸發</b>ADC多通道采樣+<b class='flag-5'>DMA</b>提取<b class='flag-5'>數據</b>

    STM32CubeMX-串口開啟DMA進行數據傳輸

    STM32CubeMX筆記-串口開啟DMA進行數據傳輸
    發表于 12-27 18:40 ?7次下載
    <b class='flag-5'>STM32</b>CubeMX-串口開啟<b class='flag-5'>DMA</b>進行<b class='flag-5'>數據傳輸</b>

    stm32數據傳輸

    簡介DMA,全稱Direct Memory Access,即直接存儲訪問。DMA傳輸數據從一個地址空間復制到另一個地址空間,提供在外設和
    發表于 12-28 19:08 ?8次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>數據傳輸</b>
    蓝盾百家乐官网赌场| 百家乐官网的奥秘| 百家乐平台注册送彩金| 投真钱百家乐官网必输吗| qq德州扑克怎么玩| 百家乐威尼斯人| 缅甸百家乐官网的玩法技巧和规则| 喜来登娱乐城| 大发888收获| 百家乐官网算牌方| 太阳城百家乐官网投注| 皇冠在线娱乐城| 大发888娱乐城都有啥扑克牌游戏| 澳门百家乐21点| 百家乐官网超级市场| 棋牌休闲游戏| 威尼斯人娱乐城赌球| 百家乐官网博娱乐平台| 云鼎百家乐官网现金网| 皇冠娱乐场| 赚钱的棋牌游戏| 大发888娱乐城备用网址| 免费百家乐官网预测| 百家乐官网博娱乐平台赌百家乐官网| 百家乐官网真人游戏网| 东宁县| 88娱乐城| 现金网| 博彩e族| 信誉棋牌游戏| 大发888娱乐城注册送筹码| 百家乐玩法既规则| 做生意怕路冲吗| 百家乐官网最大的赌局| 乐九百家乐官网现金网| 新乐市| 普兰店市| 百家乐官网全程打庄| 六合彩特码| 宝马会娱乐城| 足球网络投注|