国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

STM32串口收發數據為什么要使用DMA

GReq_mcu168 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2022-02-12 13:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

直接存儲器訪問(Direct Memory Access),簡稱DMA。DMA是CPU一個用于數據從一個地址空間到另一地址空間“搬運”(拷貝)的組件,數據拷貝過程不需CPU干預,數據拷貝結束則通知CPU處理。因此,大量數據拷貝時,使用DMA可以釋放CPU資源,相關文章推薦:詳解STM32中的DMA原理。

在STM32控制器中,芯片采用Cortex-M3架構,總線結構有了很大的優化,DMA占用另外的總線,并不會與CPU的系統總線發生沖突。也就是說,DMA的使用不會影響CPU的運行速度。

STM32串口收發數據為什么要使用DMA

DMA數據拷貝過程,典型的有:

內存—>內存,內存間拷貝

外設—>內存,如uart、spi、i2c等總線接收數據過程

內存—>外設,如uart、spi、i2c等總線發送數據過程

串口有必要使用DMA嗎

串口(UART)是一種低速的串行異步通信,適用于低速通信場景,通常使用的波特率小于或等于115200bps。PC與STM32單片機通信實例推薦:按下按鍵,通過串口發送數據實例。

對于小于或者等于115200bps波特率的,而且數據量不大的通信場景,一般沒必要使用DMA,或者說使用DMA并未能充分發揮出DMA的作用。

對于數量大,或者波特率提高時,必須使用DMA以釋放CPU資源,因為高波特率可能帶來CPU資源過度浪費的問題。

舉個例子

對于發送,使用循環發送,可能阻塞線程,需要消耗大量CPU資源“搬運”數據,浪費CPU。對于發送,使用中斷發送,不會阻塞線程,但需浪費大量中斷資源,CPU頻繁響應中斷。以115200bps波特率,1s大約傳輸11520字節,大約69us需響應一次中斷,如波特率再提高,將消耗更多CPU資源。

對于接收,如仍采用傳統的中斷模式接收,同樣會因為頻繁中斷導致消耗大量CPU資源。

因此,在高波特率傳輸場景下,串口非常有必要使用DMA。

原文標題:STM32串口收發數據為什么要使用DMA?

文章出處:【微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

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

    關注

    463

    文章

    54010

    瀏覽量

    466077
  • 控制器
    +關注

    關注

    114

    文章

    17791

    瀏覽量

    193182
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373458

原文標題:STM32串口收發數據為什么要使用DMA?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    串口調試步驟(適合免驅動的232串口設備)

    密碼切換到root超級管理下 apt update 更新插件 apt-get install cutecom 安裝系統自帶的串口調試工具 cutecom 輸入串口測試的指令會彈出一個圖形界面如下圖 32串口協議測試需要將第2和第
    的頭像 發表于 12-17 17:23 ?1451次閱讀
    <b class='flag-5'>串口</b>調試步驟(適合免驅動的232<b class='flag-5'>串口</b>設備)

    NucleiStudio_IDE_201909串口打印浮點型數據時無數據輸出,軟件該如何配置串口才能打印浮點型數據?

    NucleiStudio_IDE_201909串口打印浮點型數據時無數據輸出,軟件該如何配置串口才能打印浮點型數據
    發表于 11-07 07:57

    UWB650串口測距通信定位模塊規格書

    UWB650串口測距通信定位模塊規格書
    發表于 11-03 17:40 ?1次下載

    GD32的串口DMA收發數據失敗怎么解決?

    我在使用RTT的GD32F303的BSP時,配置使用串口DMA收發(rt_device_open),發現錯誤,最終無法收發數據,對比了
    發表于 09-17 06:04

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

    ); rt_thread_mdelay(1000); } } 使用串口助手,PC端能收到“hello”,但是PC端下發的數據,沒有收到。 如果配置上不使用DMA串口
    發表于 09-11 07:14

    關于stm32f4zgt6和mspm0g3507串口通信問題

    本人在使用stm32f4zgt6和mspm0g3507串口通信時出現問題,情況如下: m0芯片使用軟件超時解析進行數據接收,使用標準庫的transmit函數進行數據發送。
    發表于 09-01 11:11

    STM32串口發送數據,USART_FLAG_TC無法置位怎么解決?

    STM32串口發送數據,在經過一段時間的數據發送,大概200ms發送一下,一次發送大概二三十個字節的數據,有可能會發生USART_FLAG_
    發表于 07-29 11:44

    PL2303串口驅動

    PL2303串口驅動
    發表于 04-09 16:02 ?4次下載

    PL2303串口驅動win10版本用

    PL2303串口驅動win10版本用
    發表于 04-09 16:02 ?1次下載

    cp2102串口驅動

    cp2102串口驅動
    發表于 04-09 16:01 ?10次下載

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經典版本,親試可用。
    發表于 04-09 15:59 ?11次下載

    GD32串口高效率數據收發:多方案深度解析與實戰

    +空閑中斷方案在以下方面具有顯著優勢: 雙DMA通道協同工作:實現收發完全異步操作 零拷貝技術:減少70%以上的CPU數據搬運 智能緩沖管理:環形緩沖+雙緩沖組合設計 流量整形能力:精確識別
    發表于 03-29 16:20

    stm32f105串口數據丟失的原因?

    hal庫通過dma空閑中斷接收數據,收到的數據直接通過串口打印出去,每隔一段時間出現接收到數據丟失是為啥呢
    發表于 03-14 13:38

    STM32G4串口無法發送正確的信息是怎么回事?

    STM32G4串口無法發送正確的信息
    發表于 03-14 07:14

    STM32串口通信,上電和斷電串口助手會返回數是怎么回事?

    STM32串口通信,上電和斷電串口助手會返回數,是為什么呢
    發表于 03-12 07:57