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

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?

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

審核編輯:湯梓紅

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

    關注

    456

    文章

    51140

    瀏覽量

    426150
  • 控制器
    +關注

    關注

    112

    文章

    16442

    瀏覽量

    179017
  • STM32
    +關注

    關注

    2270

    文章

    10923

    瀏覽量

    357035

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

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

收藏 人收藏

    評論

    相關推薦

    LS10串口數據庫模塊外擴SD卡功能

    LS10串口數據庫模塊外擴SD卡功能
    的頭像 發表于 11-23 09:42 ?243次閱讀
    LS10<b class='flag-5'>串口</b><b class='flag-5'>數據</b>庫模塊外擴SD卡功能

    快速實現C2000串口程序升級

    電子發燒友網站提供《快速實現C2000串口程序升級.pdf》資料免費下載
    發表于 08-29 10:50 ?1次下載
    快速實現C2000<b class='flag-5'>串口</b>程序升級

    使用stm32f205和esp32之間進行串口通訊時遇到的疑問求解

    時間,接收超時時間設置為50ms,測量最小50ms,最大到了96ms。 stm32f205串口: 使用dma進行收據收發,可以保證通訊速度,50ms
    發表于 06-19 07:53

    用esp32的串口Stm32F407串口通訊,通過TJA轉CAN,結果esp32串口讀到的一直是自己發的數據,為什么?

    我用esp32的串口Stm32F407串口通訊,通過TJA轉CAN。結果esp32串口讀到的一直是自己發的數據,各位大神給我看看哪里有問題
    發表于 06-19 07:00

    485串口可以用can協議嗎

    一、引言 隨著工業自動化和智能控制技術的發展,通信協議在設備間數據傳輸和控制中扮演著越來越重要的角色。485串口和CAN協議是兩種常見的通信協議,它們在不同的應用場景中發揮著重要作用。本文將對這兩種
    的頭像 發表于 06-16 09:21 ?1408次閱讀

    ESP32C3串口可以使用DMA收發嗎?

    ESP32C3串口可以使用DMA收發嗎,如果可以,有沒有相關的使用例程
    發表于 06-11 07:08

    STM32串口DMA通訊接收不到數據的原因?

    //STM32串口DMA通訊接收不到數據 //請各位大神幫忙看看,下面的DMA配置問題出在哪里 //程序編寫思路是:用
    發表于 05-09 06:40

    stm32 adc1和串口2同時使用DMA出錯的原因?

    stm32f103r8t6adc1使用dma方式采集數據串口2使用dma方式收發
    發表于 04-22 08:08

    STM32F103串口DMA+IDLE收發,速率過快會造成overrun數據溢出怎么解決?

    +IDLE, 收發都通過DMADMA每次接收最大數是64,進入IDLE中斷后,從串口緩沖拷貝數據。在27字節
    發表于 04-18 06:26

    stm32F429串口采用DMA方式發送,數據流使能失敗的原因?

    最近項目要使用F429的DMA進行串口發送數據,燒錄之后程序無法正常運行,仿真發現在執行完DMA_Cmd(
    發表于 04-17 07:05

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

    首先說一下過程,之前在F1,F0上使用DMA串口發送和接收數據,開啟空閑中斷接收不定長數據,都沒有任何問題。后來用上了G030,使用串口1做
    發表于 04-01 07:46

    STM32G491使用串口DMA收發數據,一直進中斷卡死其他任務是為什么?

    STM32G491使用串口DMA收發數據,一直進中斷卡死其他任務,具體原因是出現在哪里?
    發表于 03-18 07:49

    stm32f407zet6串口dma會和sdio的dma發生干擾嗎?

    stm32f407zet6 串口dma會和sdio的dma發生干擾嗎
    發表于 03-11 07:25

    STM32F407串口DMA發送卡死在HAL_DMA_GetState怎么解決?

    使用五路串口DMA收發數據,但是在發送的時候,到了while(HAL_DMA_GetState( hdma_usart3_tx) != HA
    發表于 03-06 08:29

    ZDP1440串口屏應用開發如何使用虛擬串口調試

    ZDP1440串口屏應用開發如何使用虛擬串口調試呢?本文將詳細方法分享給大家。
    的頭像 發表于 01-25 11:32 ?1753次閱讀
    ZDP1440<b class='flag-5'>串口</b>屏應用開發如何使用虛擬<b class='flag-5'>串口</b>調試
    主站蜘蛛池模板: 色偷偷777| 国产探花在线精品一区二区| black大战chinese周晓琳| 国产a级黄色毛片| 旧里番ovaの催○セイ活指导| 人人舔人人爱| 野花日本免费完整版高清版动漫 | 日本精品久久久久中文字幕 1 | 免费精品国产人妻国语麻豆| 亚洲 欧美 中文 日韩 另类| 99热这里只有精品| 精品国产乱码久久久久久口爆| 青青草伊人| 2022国产精品不卡a| 国内精品伊人久久久影院| 日韩 亚洲 欧美 中文 高清| 970女主播电台歌曲| 解开美女胸衣2破解版| 微福利92合集| 国产 浪潮AV性色四虎| 欧美日韩中文字幕综合图区 | 欧美男男网站免费观看videos| 夜色帮首页| 国语对白刺激真实精品| 午夜向日葵高清在线观看| 办公室激情在线观看| 男人天堂2018亚洲男人天堂| 伊人青青草原| 精品无码久久久久久久久| 亚洲国产精品无码2019| 国产美熟女乱又伦AV| 午夜影视不充值观看| 丰满的美女射精动态图| 强行撕开衣服捏胸黄文| 99久久国语露脸精品国产| 美国色情三级欧美三级纸匠情挑| 伊人久久免费| 久久亚洲伊人中字综合精品| 伊人不卡久久大香线蕉综合影院| 黑人玩弄极品人妻系列| 亚洲国产高清福利视频|