日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

串口有必要使用DMA嗎

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

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

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

舉個例子

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

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    463

    文章

    54463

    瀏覽量

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

    關(guān)注

    114

    文章

    17886

    瀏覽量

    195318
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374759

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    STM32驅(qū)動串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口

    僅是一部分常用的基礎(chǔ)指令,更多更仔細的指令或者函數(shù)可以訪問陶晶馳資料官網(wǎng)。 硬件和接線 硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊 接線 串口STM32
    的頭像 發(fā)表于 02-10 17:07 ?623次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>發(fā)送指令控制HMI<b class='flag-5'>串口</b>屏

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

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

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

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

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

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

    rt-thread 在使用串口DMA模式的時候,接收數(shù)據(jù)接收不到00,為什么?

    硬件為STM32F103ZET6: 在使用串口通訊時,在DMA接收模式下,收不到00數(shù)據(jù),遇到00數(shù)據(jù),好像
    發(fā)表于 10-14 06:20

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

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

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

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

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

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

    串口DMA發(fā)送失敗的原因?怎么解決?

    #include #include #include// 包含 RT-Thread 設(shè)備驅(qū)動相關(guān)定義 #include// 包含 GPIO 驅(qū)動相關(guān)定義 /* 根據(jù)實際485串口來修改 */ #define
    發(fā)表于 08-15 06:21

    DTU的S485/232串口能夠復用嗎?

    想問一下,DTU的S485/232串口能夠復用嗎?就是窗口下面接很多傳感器設(shè)備那種,主要是傳感器數(shù)量過大,一個傳感器接一臺DTU太過于浪費。
    發(fā)表于 08-06 06:58

    求助,關(guān)于stm32H7多DMA數(shù)據(jù)流問題求解

    情況如下:stm32H7配置了一個adc進行采樣,通過dma進行數(shù)據(jù)傳輸,串口接收和發(fā)送命令,用兩個dma
    發(fā)表于 07-29 15:02

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

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

    串口轉(zhuǎn)網(wǎng)網(wǎng)關(guān)有哪些功能應(yīng)用

    直接接入信息網(wǎng)絡(luò)的痛點,同時支持多協(xié)議解析、邊緣計算與安全防護等高級功能。 在工業(yè)自動化生產(chǎn)線上,大量設(shè)備如 PLC(可編程邏輯控制器)、傳感器、儀表等仍采用串口通信,而上位機則是通過以太網(wǎng)進行通信。串口轉(zhuǎn)網(wǎng)
    的頭像 發(fā)表于 07-17 17:10 ?940次閱讀
    <b class='flag-5'>串口</b>轉(zhuǎn)網(wǎng)<b class='flag-5'>口</b>網(wǎng)關(guān)有哪些功能應(yīng)用

    cyw43907串口數(shù)據(jù)錯位問題怎么解決?

    1.串口數(shù)據(jù)會偶發(fā)錯位問題,具體在附件中描述。 2.目前使用串口0進行通信,發(fā)現(xiàn)在配置波特率為460800的時候通訊異常,debug發(fā)現(xiàn)貌似是波特率誤差過大,所以選擇了467500,有無推薦誤差比較小且波特率與460800差不多
    發(fā)表于 07-09 08:16

    STM32驅(qū)動ADS1256串口輸出-AD轉(zhuǎn)換

    文章介紹了如何使用STM32通過SPI接口初始化并驅(qū)動ADS1256高精度AD轉(zhuǎn)換器,包括ADS1256的芯片特點、引腳說明、模塊配置、程序初始化以及實驗中的接線和現(xiàn)象。在實驗中,通過讀取各個通道的AD值并轉(zhuǎn)換為電壓,展示了芯片功能的正確實現(xiàn)。
    的頭像 發(fā)表于 07-01 14:59 ?2543次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動ADS1256<b class='flag-5'>串口</b>輸出-AD轉(zhuǎn)換
    循化| 响水县| 遂川县| 和林格尔县| 柏乡县| 东明县| 昭苏县| 南乐县| 加查县| 邵东县| 柳江县| 景谷| 绥江县| 璧山县| 湛江市| 汕头市| 岑巩县| 皋兰县| 沁源县| 洪湖市| 中山市| 平和县| 隆安县| 泽州县| 瓦房店市| 白玉县| 江阴市| 峨眉山市| 农安县| 丰都县| 甘孜| 霍州市| 江城| 西安市| 承德市| 嵩明县| 怀宁县| 乌苏市| 霍邱县| 上犹县| 和硕县|