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

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

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

3天內不再提示

常見的UART收發方式

星星科技指導員 ? 來源:億佰特 ? 作者:億佰特 ? 2024-02-19 16:23 ? 次閱讀

在很多單片機系統中,都會提供UART Read和UART Write這樣的接口函數。一些高級的單片機甚至還有UART Read Callback和UART Write Callback這樣的回調函數來收發數據。通常很多單片機的數據處理能力相對UART通信來說要快得多,因此像采用上述接口函數的單片機系統都使用了數據緩存來輔助UART收發。常見的UART收發方式有這幾種:

1、數據隊列(Queue)收發

這種方式適合大多數單片機,只要有中斷就行。使用UART Write發送數據時,數據并不是直接寫入到UART發送器,而是放進了一個環形緩沖區中。然后在UART TX發送完畢中斷服務函數中讀取環形緩沖區并把讀到的字節送入UART發送器,然后等待TX發送完畢中斷服務函數再次執行時送入下一個字節,直到把環形緩沖區的數據送完為止。環形緩沖區通常有一個標記頭和尾的變量,只要頭和尾的變量值不相等就說明緩沖區有數據。使用UART Read接收數據時,也不是直接從UART接收器中獲取數據,而是從環形緩沖區中獲取數據。UART RX收到中斷服務函數中把UART接收器收到的字節送進環形緩沖區,單片機執行UART Read時獲取到的數據是環形緩沖區的數據,這樣可以保證單片機程序不用一直等待UART接收器。這種設計的優點是可以有效地處理實時數據,避免了數據的丟失。但是,如果Queue的大小設置不當,可能會導致數據的溢出。因此,我們需要根據實際的應用場景來合理地設置Queue的大小。

2、帶硬件FIFO的UART收發

很多先進的單片機的UART收發用上了硬件FIFO。沒有硬件FIFO的單片機在收發數據時每收發一個字節就要執行一次中斷函數,在高波特率通信時單片機會頻繁進入中斷,從而影響單片機主任務的處理。而硬件FIFO則可以緩解這種矛盾。例如單片機的UART FIFO是16字節,單片機在發送數據時一次最多可以傳輸16字節數據,等16字節數據發送完畢后才產生UART TX發送完畢中斷。接收數據時通常是“半滿”中斷和“超時”中斷,即接收FIFO中的字節數超過8字節,或者接收FIFO不為空但是超過1字節的時間內沒有收到新的字節數據,產生一次UART RX接收中斷。通常帶硬件FIFO的UART會和數據隊列的方式相結合使用,在高波特率通信下傳輸效率更高。

3、帶DMA的UART收發

DMA(Direct Memory Access)是一種可以將計算機的某個存儲區域直接映射到內存地址空間的技術,從而實現對內存和其他外設的統一訪問。當UART接收到數據時,數據會被直接寫入到DMA控制的內存區域中,然后觸發中斷。在中斷服務程序中,我們可以從DMA控制的內存區域中取出數據,進行必要的處理,然后再通過UART發送出去。

使用DMA進行UART傳輸對連續多條數據的傳輸幫助特別大,例如前面提到的UART Read Callback和UART Write Callback回調函數的方式。連續發送多條數據流時,可以把數據流放在單片機的多個不同的緩沖區,然后DMA直接指向緩沖區地址,待DMA傳輸完畢后產生UART Write Callback,然后在UART Write Callback中把DMA指向下一個緩沖區地址。接收數據時也可以預約一個接收緩沖區,DMA傳輸的數據傳輸到該緩沖區,傳輸滿了后產生UART Read Callback再指向下一個接收緩沖區,同時可以讓單片機主程序處理已收滿數據的緩沖區的內容。

審核編輯:黃飛

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

    關注

    6035

    文章

    44554

    瀏覽量

    634665
  • uart
    +關注

    關注

    22

    文章

    1235

    瀏覽量

    101355
  • 數據緩存
    +關注

    關注

    0

    文章

    23

    瀏覽量

    7055
  • 發送器
    +關注

    關注

    1

    文章

    259

    瀏覽量

    26816
收藏 人收藏

    評論

    相關推薦

    uart通信的詳細講解

    UART通信的基本原理、工作模式、波特率計算以及常見使用方式,幫助有一定單片機開發能力的人群更好地理解和應用UART通信。01UART通信的
    的頭像 發表于 09-22 08:22 ?2855次閱讀
    <b class='flag-5'>uart</b>通信的詳細講解

    RS485和RS232uart中斷方式的半雙工收發數據 接到數據原樣返回

    RS485和RS232 uart中斷方式的半雙工收發數據 接到數據原樣返回的c語言代碼有什么區別嗎???我現在有一個RS232C語言執行的uart中斷
    發表于 09-18 16:59

    UART阻塞方式收發

    博主能力有限,有錯誤望大佬指出0x00 文章內容:UART阻塞方式收發UART中斷方式收發
    發表于 08-10 07:32

    STM32 UART串口收發與中斷方式接收環境

    STM32 UART串口收發與中斷方式接收環境:1、STM32CubeMX 5.32、Atollic TrueSTUDIO for STM32 9.3.03、戰艦迷你板(stm32f103rb)(一
    發表于 08-13 08:49

    如何去實現UART阻塞方式收發數據呢

    如何去實現UART阻塞方式收發數據呢?如何去實現UART中斷方式收發數據呢?
    發表于 12-08 06:50

    UART異步通信方式引腳連接方法是什么?

    常見的串行通信接口有哪些?UART異步通信方式引腳連接方法是什么?UART異步通信方式特點是什么?
    發表于 12-16 07:16

    HAL庫中UART的三種收發方式是什么?

    HAL庫中UART的三種收發方式是什么?
    發表于 02-18 06:33

    UART收發器設計實例

    UART(Universal Asynchronous Receiver Transmitter,通用異步收發器)是廣泛使用的異步串行數據通信協議。下面首先介紹 UART 硬件接口及電平轉換電路,分析
    發表于 07-22 11:24 ?113次下載
    <b class='flag-5'>UART</b><b class='flag-5'>收發</b>器設計實例

    通用異步收發器(UART

    通用異步收發器(UART
    發表于 10-11 14:53 ?21次下載
    通用異步<b class='flag-5'>收發</b>器(<b class='flag-5'>UART</b>

    UART收發數據操作介紹

    Curiosity PIC32MZEF學習教程之:如何通過UART收發數據PIC32MZEF一共有6個UART端口,資源還是比較豐富的。UART是比較常用的外設,特別是在調試的時候,串
    的頭像 發表于 02-01 03:27 ?1.4w次閱讀
    <b class='flag-5'>UART</b>的<b class='flag-5'>收發</b>數據操作介紹

    UART收發器的設計實例詳細說明

    UART(Universal Asynchronous Receiver Transmitter,通用異步收發器)是廣泛使用的異步串行數據通信協議。下面首先介紹 UART 硬件接口及電平轉換電路
    發表于 12-27 08:00 ?4次下載
    <b class='flag-5'>UART</b><b class='flag-5'>收發</b>器的設計實例詳細說明

    STM8S_ 004_UART基本收發數據

    STM8S_004_UART基本收發數據
    的頭像 發表于 03-20 10:41 ?4476次閱讀
    STM8S_ 004_<b class='flag-5'>UART</b>基本<b class='flag-5'>收發</b>數據

    【CubeIDE】STM32 HAL庫史上最詳細教程(一):UART串口收發

    博主能力有限,有錯誤望大佬指出  0x00 文章內容:UART阻塞方式收發UART中斷方式
    發表于 11-23 17:51 ?12次下載
    【CubeIDE】STM32 HAL庫史上最詳細教程(一):<b class='flag-5'>UART</b>串口<b class='flag-5'>收發</b>

    UART通用異步收發器原理是什么

    UART通用異步收發器(串口通信) 一般來說,開發過程中我們通常使用串口進行DEBUG調試。 原理 通用異步收發傳輸器(Universal Asynchronous Receiver
    的頭像 發表于 11-09 17:32 ?750次閱讀
    <b class='flag-5'>UART</b>通用異步<b class='flag-5'>收發</b>器原理是什么

    常見通信的底層數據傳輸原理(UART、SPI、I2C)

    UART:Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器。 UART串口是最常見的一種串口通信,下面是串口連接上位機
    發表于 01-15 10:41 ?903次閱讀
    <b class='flag-5'>常見</b>通信的底層數據傳輸原理(<b class='flag-5'>UART</b>、SPI、I2C)
    主站蜘蛛池模板: ewp绞死vk失禁编| 欧美成人性色生活18黑人| 小莹的性荡生活| 儿子好妈妈的HD3中字抢劫| 男人到天堂a线牛叉在线| 在线观看中文字幕码2021不用下载 | 亚洲永久免费视频| 国产探花在线精品一区二区| 帅哥操帅哥| 国产ts在线| 色婷婷国产精品视频一区二区三区 | 亚洲国产欧美在线人成aaaa20| 国产69精品久久久久妇女| 日本精品无码久久久久APP| 97超级碰久久久久香蕉人人| 裸妇厨房风流在线观看| 中文字幕 人妻熟女| 久久亚洲精品成人综合| 一亲二脱三插| 久久成人伊人欧洲精品AV| 亚洲卫视论坛| 久久超碰国产精品最新| 一手揉着乳头一手模仿抽插视频 | 精品国产国产综合精品| 亚洲欧美视频在线| 久久88综合| 永久adc视频| 久青草国产在线视频| 538prom精品视频我们不只是| 老师掀开短裙让我挺进动态| 1024人成网站色www下载| 免费三级播放器| free18sex性自拍裸舞| 漂亮的保姆3中文版完整版| 成年黄网站免费大全毛片| 日韩男明星| 国产美女影院| 亚洲欧洲日产国码中学| 久久婷婷国产五月综合色啪最新| 中文在线日韩亚洲制服| 免费视频精品38|