91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32串口收發(fā)數(shù)據(jù)為什么要使用DMA

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

掃碼添加小助手

加入工程師交流群

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

在STM32控制器中,芯片采用Cortex-M3架構(gòu),總線結(jié)構(gòu)有了很大的優(yōu)化,DMA占用另外的總線,并不會(huì)與CPU的系統(tǒng)總線發(fā)生沖突。也就是說(shuō),DMA的使用不會(huì)影響CPU的運(yùn)行速度。

STM32串口收發(fā)數(shù)據(jù)為什么要使用DMA

DMA數(shù)據(jù)拷貝過(guò)程,典型的有:

內(nèi)存—>內(nèi)存,內(nèi)存間拷貝

外設(shè)—>內(nèi)存,如uart、spi、i2c等總線接收數(shù)據(jù)過(guò)程

內(nèi)存—>外設(shè),如uart、spi、i2c等總線發(fā)送數(shù)據(jù)過(guò)程

串口有必要使用DMA嗎

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

對(duì)于小于或者等于115200bps波特率的,而且數(shù)據(jù)量不大的通信場(chǎng)景,一般沒(méi)必要使用DMA,或者說(shuō)使用DMA并未能充分發(fā)揮出DMA的作用。

對(duì)于數(shù)量大,或者波特率提高時(shí),必須使用DMA以釋放CPU資源,因?yàn)楦卟ㄌ芈士赡軒?lái)CPU資源過(guò)度浪費(fèi)的問(wèn)題。

舉個(gè)例子

對(duì)于發(fā)送,使用循環(huán)發(fā)送,可能阻塞線程,需要消耗大量CPU資源“搬運(yùn)”數(shù)據(jù),浪費(fèi)CPU。對(duì)于發(fā)送,使用中斷發(fā)送,不會(huì)阻塞線程,但需浪費(fèi)大量中斷資源,CPU頻繁響應(yīng)中斷。以115200bps波特率,1s大約傳輸11520字節(jié),大約69us需響應(yīng)一次中斷,如波特率再提高,將消耗更多CPU資源。

對(duì)于接收,如仍采用傳統(tǒng)的中斷模式接收,同樣會(huì)因?yàn)轭l繁中斷導(dǎo)致消耗大量CPU資源。

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

原文標(biāo)題:STM32串口收發(fā)數(shù)據(jù)為什么要使用DMA?

文章出處:【微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54010

    瀏覽量

    466166
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17791

    瀏覽量

    193261
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373475

原文標(biāo)題:STM32串口收發(fā)數(shù)據(jù)為什么要使用DMA?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    串口調(diào)試步驟(適合免驅(qū)動(dòng)的232串口設(shè)備)

    密碼切換到root超級(jí)管理下 apt update 更新插件 apt-get install cutecom 安裝系統(tǒng)自帶的串口調(diào)試工具 cutecom 輸入串口測(cè)試的指令會(huì)彈出一個(gè)圖形界面如下圖 32串口協(xié)議測(cè)試需要將第2和第
    的頭像 發(fā)表于 12-17 17:23 ?1454次閱讀
    <b class='flag-5'>串口</b>調(diào)試步驟(適合免驅(qū)動(dòng)的232<b class='flag-5'>串口</b>設(shè)備)

    NucleiStudio_IDE_201909串口打印浮點(diǎn)型數(shù)據(jù)時(shí)無(wú)數(shù)據(jù)輸出,軟件該如何配置串口才能打印浮點(diǎn)型數(shù)據(jù)?

    NucleiStudio_IDE_201909串口打印浮點(diǎn)型數(shù)據(jù)時(shí)無(wú)數(shù)據(jù)輸出,軟件該如何配置串口才能打印浮點(diǎn)型數(shù)據(jù)?
    發(fā)表于 11-07 07:57

    UWB650串口測(cè)距通信定位模塊規(guī)格書(shū)

    UWB650串口測(cè)距通信定位模塊規(guī)格書(shū)
    發(fā)表于 11-03 17:40 ?1次下載

    GD32的串口DMA收發(fā)數(shù)據(jù)失敗怎么解決?

    我在使用RTT的GD32F303的BSP時(shí),配置使用串口DMA收發(fā)(rt_device_open),發(fā)現(xiàn)錯(cuò)誤,最終無(wú)法收發(fā)數(shù)據(jù),對(duì)比了
    發(fā)表于 09-17 06:04

    STM32H743 UART DMA接收不到數(shù)據(jù)是為什么?

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

    關(guān)于stm32f4zgt6和mspm0g3507串口通信問(wèn)題

    本人在使用stm32f4zgt6和mspm0g3507串口通信時(shí)出現(xiàn)問(wèn)題,情況如下: m0芯片使用軟件超時(shí)解析進(jìn)行數(shù)據(jù)接收,使用標(biāo)準(zhǔn)庫(kù)的transmit函數(shù)進(jìn)行數(shù)據(jù)發(fā)送。
    發(fā)表于 09-01 11:11

    STM32串口發(fā)送數(shù)據(jù),USART_FLAG_TC無(wú)法置位怎么解決?

    STM32串口發(fā)送數(shù)據(jù),在經(jīng)過(guò)一段時(shí)間的數(shù)據(jù)發(fā)送,大概200ms發(fā)送一下,一次發(fā)送大概二三十個(gè)字節(jié)的數(shù)據(jù),有可能會(huì)發(fā)生USART_FLAG_
    發(fā)表于 07-29 11:44

    PL2303串口驅(qū)動(dòng)

    PL2303串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:02 ?4次下載

    PL2303串口驅(qū)動(dòng)win10版本用

    PL2303串口驅(qū)動(dòng)win10版本用
    發(fā)表于 04-09 16:02 ?1次下載

    cp2102串口驅(qū)動(dòng)

    cp2102串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:01 ?10次下載

    STM32串口下載軟件(FLYMCU)

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

    GD32串口高效率數(shù)據(jù)收發(fā):多方案深度解析與實(shí)戰(zhàn)

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

    stm32f105串口數(shù)據(jù)丟失的原因?

    hal庫(kù)通過(guò)dma空閑中斷接收數(shù)據(jù),收到的數(shù)據(jù)直接通過(guò)串口打印出去,每隔一段時(shí)間出現(xiàn)接收到數(shù)據(jù)丟失是為啥呢
    發(fā)表于 03-14 13:38

    STM32G4串口無(wú)法發(fā)送正確的信息是怎么回事?

    STM32G4串口無(wú)法發(fā)送正確的信息
    發(fā)表于 03-14 07:14

    STM32串口通信,上電和斷電串口助手會(huì)返回?cái)?shù)是怎么回事?

    STM32串口通信,上電和斷電串口助手會(huì)返回?cái)?shù),是為什么呢
    發(fā)表于 03-12 07:57