吴忠躺衫网络科技有限公司

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>
    澳门百家乐心德| 金盈会百家乐官网现金网| 试玩百家乐游戏机| 百家乐官网的玩法技巧和规则| 速博娱乐| 一筒百家乐的玩法技巧和规则| 尊龙百家乐官网娱乐场开户注册 | 赌场百家乐官网规则| 宝马会娱乐城返水| 机械百家乐技巧| 优博百家乐官网的玩法技巧和规则 | 百家乐官网二路珠无敌稳赢打法| 麻将二八杠游戏| 娱乐城百家乐技巧| 澳门百家乐官网真人斗地主| 云鼎娱乐城| 威尼斯人娱乐开户| 百家乐是如何骗人的| 试玩百家乐官网网| 佛冈县| 大发888 大发888娱乐城 大发888娱乐场 | 跨国际百家乐的玩法技巧和规则| 基础百家乐官网的玩法技巧和规则 | 百家乐官网如何盈利| 丰城市| 德州扑克高级技巧| 91百家乐的玩法技巧和规则| 百家乐规则技法| 可以玩百家乐官网的博彩公司| 在线博彩| 德州扑克高级教程| 名仕百家乐的玩法技巧和规则| 百家乐高手论坮| 百家乐官网有公式| 百家乐官网游戏打水方法| 澳门赌场着装| 大发888 dafa888 大发官网| 戒掉百家乐的玩法技巧和规则| 百家乐时时彩网站| 利记百家乐现金网| 布加迪百家乐官网的玩法技巧和规则|