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

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

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

3天內不再提示

UART寄存器的循環緩沖區實現以及中斷驅動的UART實現和硬件設置

汽車玩家 ? 來源: Zilog ? 作者: Zilog ? 2021-06-23 15:43 ? 次閱讀

本應用筆記介紹了用于 Z8 Encore 的中斷驅動 UART!XP? 和 Z8 Encore!MC? 微控制器。它描述了 UART 寄存器描述、循環緩沖區實現,以及中斷驅動的 UART 實現和硬件設置。

Z8 Encore 中的 UART 外設概述設備

通用異步接收器/發送器 (UART) 是一種能夠處理異步數據傳輸的全雙工通信通道。UART 使用具有可選奇偶校驗的單個 8 位數據模式。UART 的特性包括:

  • 8 位異步數據傳輸
  • 可選擇的偶數或奇數奇偶校驗生成和檢查
  • 一或兩個停止位的選項
  • 獨立的發送和接收中斷
  • 單獨的發送和接收使能
  • 幀、奇偶校驗、溢出和中斷檢測
  • 16 位波特率發生器 (BRG)
  • 具有三種可配置中斷方案的可選多處理器(9 位)模式
  • 波特率發生器定時器模式
  • 驅動器啟用外部總線收發器的輸出

UART 由三個主要功能塊組成:發送器、接收器和波特率發生器。UART 的發送器和接收器各自獨立運行,但使用相同的波特率和數據格式。圖 1 顯示了 UART 架構。


圖 1 Z8 Encore 示意圖!XP UART 模塊

循環緩沖區實現

本節介紹循環緩沖區的實現。此處介紹的例程可用于任何排隊或緩沖應用程序。

緩沖區通常用作臨時數據存儲,通常用于流式傳輸數據。類似地,循環緩沖區(或環形緩沖區)是具有內存分配方案的臨時數據存儲,其中緩沖區可以具有固定大小,并且當索引指針返回到起始位置時可以重用每個內存位置。這種緩沖方案被廣泛使用,并且有幾個現有版本,每個版本都根據應用需求而變化。本節描述一個簡單的緩沖機制。

為了初始化循環緩沖區,需要初始化一個內存段或任何預定義長度的數組。這是緩沖數據的存儲位置。

《br》#define RBUF_IN_BUFFERSIZE (UINT8) 64)《br》UINT8 RBUF_InBuff [RBUF_IN_BUFFERSIZE];《br》

為了便于管理循環緩沖區,初始化了兩個索引指針和一個數據計數器。

《br》UINT8 RBUF_InRdPtr; // Pointer to the next read location《br》UINT8 RBUF_InWrPtr; // Pointer to the next write location《br》UINT8 RBUF_InLength // Buffer length《br》

初始化時,緩沖區不包含任何內容,指針位于緩沖區的開頭,如圖 2 所示。


圖 2 初始化緩沖區

當數據被寫入緩沖區時,寫指針增加,數據計數器也增加。類似地,當從緩沖區讀取數據時,讀取指針會遞增,而數據計數器會遞減。參見圖 3。


圖 3 緩沖區的讀/寫操作

當讀或寫指針到達緩沖區的末尾時,它會跳回到開頭,造成環繞效應。因此,之前使用讀取操作獲取的數據將被覆蓋。見圖 4。


圖 4 環繞

中斷驅動的 UART 實現

本節介紹通過Z8 Encore 的UART 外設初始化、發送和接收數據的方法!設備。

本文檔中介紹的 UART 軟件實現支持基本格式,即 8 個數據位、無奇偶校驗和 1 個停止位。程序等待接收一個字符串(以換行符結束),然后回顯到輸入字符串。

為了便于通過 UART 進行數據輸入/輸出,上一節中討論的循環緩沖區用于存儲數據。單獨的緩沖區用于處理發送和接收數據。可以根據用戶需要更改緩沖區大小 RBUF_IN_BUFFERSIZE 和 RBUF_OUT_BUFFERSIZE。

硬件設置


圖 5 Z8 Encore 通過 RS-232 端口連接到 PC

圖 5 顯示了 Z8 Encore 的硬件設置!開發套件通過超級終端連接到 PC。超級終端設置為 8-N-1,流量控制設置為無。源代碼和本文檔中的默認波特率設置使用 115 kbps。用戶可以根據需要更改設置。

編輯:ymf

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

    關注

    22

    文章

    1235

    瀏覽量

    101354
  • 波特率
    +關注

    關注

    2

    文章

    307

    瀏覽量

    34115
  • 中斷驅動
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1715
收藏 人收藏

    評論

    相關推薦

    基于C語言實現環形緩沖區/循環隊列

    這里分享一個自己用純C實現的環形緩沖區
    的頭像 發表于 04-11 10:39 ?3287次閱讀
    基于C語言<b class='flag-5'>實現</b>環形<b class='flag-5'>緩沖區</b>/<b class='flag-5'>循環</b>隊列

    基于宏高效實現環形緩沖區教程

    來源 | 小麥大叔 循環緩沖區是嵌入式軟件工程師在日常開發過程中的關鍵組件。 多年來,互聯網上出現了許多不同的循環緩沖區實現和示例。我非常喜
    的頭像 發表于 09-02 09:24 ?6730次閱讀
    基于宏高效<b class='flag-5'>實現</b>環形<b class='flag-5'>緩沖區</b>教程

    使用UART FIFO緩沖區時,緩沖區中的數據有時會損壞的原因?

    1 TX FIFO 緩沖區中的一個字節從 UART 0 TX FIFO 更改為一個字節(見下圖)。 據我所見,問題發生在FIFO硬件的某個地方,因為軟件發送的數據是正確的。 UART
    發表于 03-06 06:59

    UART上的FIFO循環緩沖區大小

    ?示例:{STX,Hello \ 0,RTX}和{STX,這是一個長文本\ 0,RTX}我一直在互聯網上挖掘,我發現最好的方法是使用FIFO循環緩沖區。問題是BUFFER_SIZE在這種情況下如何解
    發表于 09-13 15:42

    UART緩沖區問題

    問題與中斷有關。只要UARTHI PUCHCHAR例程將字符直接放入PSoC UART發送數據寄存器,就發送字符。如果UARTHIPPUCHAR例程將字符放置到緩沖區中,則
    發表于 05-22 13:19

    UART緩沖技術:友好中斷

    釋想象一下執行一個任務的中斷例程:通過UART接收到字節后,它將字節存儲到緩沖區數組中,并增加totalBytes計數。isr_routine(){if(
    發表于 09-19 08:32

    DMA循環緩沖區如何重置起點?

    ){head_index = (head_index + dma_buffer_interrupt_size) % uartsize;}我遇到的問題是,當我設置一個循環緩沖區時,一旦它進入
    發表于 12-13 08:22

    如何接收UART數組緩沖區的長度呢?有何解決方案?

    數據,禁用接收并返回。如果緩沖區數組已滿,但傳輸仍在繼續,只需等待傳輸結束,然后禁用接收并返回。代碼:void uart1_receiveArray(uint8_t *arrayp
    發表于 12-14 08:18

    msp430 UART 通訊寄存器的詳細解讀

    msp430 UART 通訊 寄存器的詳細解讀 相關參數的設置和命令的詳見等等
    發表于 08-15 19:03 ?1次下載

    51單片機內核UART串行總線環形緩沖區驅動實現的程序免費下載

    驅動實現串口中斷接收和發送數據,緩沖區使用環形緩沖區。發送:手動置RI中斷標志位為1,發生
    發表于 07-19 17:38 ?3次下載
    51單片機內核<b class='flag-5'>UART</b>串行總線環形<b class='flag-5'>緩沖區</b><b class='flag-5'>驅動</b><b class='flag-5'>實現</b>的程序免費下載

    環形緩沖區實現原理

    在通信程序中,經常使用環形緩沖區作為數據結構來存放通信中發送和接收的數據。環形緩沖區是一個先進先出的循環緩沖區,可以向通信程序提供對緩沖區
    的頭像 發表于 03-22 10:03 ?7531次閱讀
    環形<b class='flag-5'>緩沖區</b>的<b class='flag-5'>實現</b>原理

    UART寄存器介紹與中斷操作詳解

    簡介 UART核提供了一個Avalon存儲映射(Avalon-MM)的接口,這個接口使得Avalon-MM的主要周邊設備(例如Nios II處理)通過讀和寫數據、控制寄存器,就能
    的頭像 發表于 08-25 16:46 ?1.6w次閱讀
    <b class='flag-5'>UART</b><b class='flag-5'>寄存器</b>介紹與<b class='flag-5'>中斷</b>操作詳解

    什么是緩沖區?有什么作用

    緩沖區其實就是一個存儲區域,它是由專門的硬件寄存器所組成的。
    的頭像 發表于 02-02 09:57 ?2.6w次閱讀

    環形緩沖區實現思路

    單片機程序開發一般都會用到UART串口通信,通過通信來實現上位機和單片機程序的數據交互。通信中為了實現正常的收發,一般都會有對應的發送和接收緩存來暫存通信數據。這里使用環形緩沖區的方式
    的頭像 發表于 01-17 15:07 ?1632次閱讀

    C++環形緩沖區設計與實現

    Buffer) 環形緩沖區(Circular Buffer),也被稱為循環緩沖區(Cyclic Buffer)或者環形隊列(Ring Buffer),是一種數據結構類型,它在內存中形成一個環形
    的頭像 發表于 11-09 11:21 ?2027次閱讀
    C++環形<b class='flag-5'>緩沖區</b>設計與<b class='flag-5'>實現</b>
    主站蜘蛛池模板: 欲乱艳荡少寡妇全文免费| 99热在线免费播放| av亚洲2017色天堂| 国产精品久久久久久久久LI无码 | 亚洲精品天堂无码中文字幕影院| 一个人的HD高清在线观看 | 和美女啪啪啪动态图| 蜜桃成熟时33D在线嘟嘟网 | 亚洲欧洲日产国产 最新| BL文库好大粗黑强强肉NP| 国产露脸A片国语露对白| 奶头被客人吸得又红又肿| 无码人妻少妇色欲AV一区二区 | 中国少妇内射XXXX狠干| 打卡中国各地奋斗第一线| 久久国产免费| 色橹橹欧美在线观看视频高清| 一二三四中文字幕在线看| 高中生被C到爽哭视频免费| 久久婷婷五月免费综合色啪| 色偷偷影院| 99视频久久精品久久| 精品日韩欧美一区二区三区| 日韩人妻少妇一区二区三区| 伊人久久综在合线亚洲| 国产精品嫩草影院在线观看免费 | 一边喂奶一边做边爱| 国产91综合| 嫩草成人影院| 夜夜草导航| 国产美女久久久久久久久久久| 男人叼女人| 伊人网综合| 国产在线观看www| 色欲档案之麻雀台上淫| 99国产精品欲AV蜜桃臀麻豆| 精品网站一区二区三区网站| 婷婷激情综合色五月久久竹菊影视| 99国产精品久久| 老师给美女同学开嫩苞| 亚洲视频无码高清在线|