嵌入式學習 51單片機(3)

UART 概述

通用異步收發器(UART)是一種全雙工、串行、異步通信協議,常用于設備間數據傳輸。包含兩根信號線:

  • RXD(接收信號線)
  • TXD(發送信號線)

通信方式

單工

  • 通信方向固定,僅支持單向傳輸(如廣播)。
  • 單根信號線實現數據傳輸。

半雙工(如I2C)

  • 通信雙方可切換發送/接收角色。
  • 單根信號線雙向傳輸,但同一時刻只能單向傳輸。

全雙工(UART)

  • 通信雙方同時收發數據。
  • 雙信號線(RXD/TXD)實現雙向實時傳輸。

數據傳輸規則

LSB優先

  • 數據位傳輸從最低位(LSB)開始。

串行 vs 并行

特性串行并行
速率較慢(逐位傳輸)較快(多線同時傳輸)
硬件成本
抗干擾性強(適合遠距離,如RS485)弱(30米內有效)

串口通信時序

  1. 空閑狀態:高電平。
  2. 起始位:高→低電平跳變,標志通信開始。
  3. 數據位:8位(LSB優先),可配置為5-9位。
  4. 校驗位(可選):奇偶校驗(見下文)。
  5. 停止位:高電平,標志幀結束(通常1-2位)。

奇偶校驗

問題:無法檢測偶數個位錯誤。

  • 奇校驗:數據位+校驗位中“1”的總數為奇數。
  • 偶校驗:數據位+校驗位中“1”的總數為偶數。

串口參數配置

常見參數組合

  • 9600,8,N,1(波特率9600,8位數據,無校驗,1位停止)
  • 2400,8,E,1(偶校驗)
  • 115200,8,O,1(奇校驗)

參數說明

  • 波特率:bps(如9600=9600bit/s)。
  • 校驗位N(無)、E(偶)、O(奇)。

同步與異步通信

  • 同步(如I2C/SPI):依賴共享時鐘線(SCL/SCLK)同步數據。
  • 異步(UART):無時鐘線,通過預定義波特率同步。

寄存器配置(以8051為例)

SCON/PCON寄存器

  • 工作模式:SM0=0SM1=1(8位UART)。
  • 允許接收:REN=1
  • 中斷標志:TI(發送完成)、RI(接收完成),需軟件清零。

定時器配置

  • 模式:TMOD=0x20(定時器1,8位自動重載)。
  • 波特率:寫入TH1/TL1初值,TCON.TR1=1啟動。

中斷配置

  • 全局中斷:IE.EA=1
  • 串口中斷:IE.ES=1

主從應答機制

  • 主機:發起通信請求(如發送指令01控制LED)。
  • 從機:解析指令并執行操作,返回應答信號。

補充要點

  1. 差分信號(如RS485):增強抗干擾能力,適合長距離通信。
  2. 硬件流控:通過RTS/CTS信號線控制數據流,避免緩沖區溢出。
  3. 現代應用:USB轉UART芯片(如CH340)簡化嵌入式調試。

常見問題

  • 波特率誤差:需保證收發雙方誤差<2%(如晶振精度影響)。
  • 電平標準:UART通常為TTL電平(0-3.3V/5V),與RS232(±12V)需電平轉換。

通過合理配置參數和寄存器,UART可實現穩定可靠的設備間通信。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921219.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis AOF 持久化:銀行的 “交易流水單” 管理邏輯

目錄 一、AOF 的核心邏輯&#xff1a;“每筆交易都記流水” 二、AOF 的三個步驟&#xff1a;從 “臨時記錄” 到 “正式歸檔” 1. 命令追加&#xff1a;記到 “臨時小本本” 2. 寫入與同步&#xff1a;抄到 “正式流水冊” 3. AOF 還原&#xff1a;拿 “流水冊” 重放交易…

代碼隨想錄訓練營第三十天|LeetCode452.用最少數量的箭引爆氣球、LeetCode435.無重疊空間、LeetCode763.劃分字母空間

452.用最少數量的箭引爆氣球 貪心算法 重合最多的氣球射一箭&#xff0c;就是局部用箭數量最少的&#xff0c;全局的用箭數量就是最少的。 首先對二維數組進行排序&#xff0c;這樣就可以讓氣球更加緊湊。 思路&#xff1a;當前氣球是否和上一個氣球區間重合&#xff0c;如…

數據庫事務隔離級別與 MVCC 機制詳解

最近在準備面試&#xff0c;正把平時積累的筆記、項目中遇到的問題與解決方案、對核心原理的理解&#xff0c;以及高頻業務場景的應對策略系統梳理一遍&#xff0c;既能加深記憶&#xff0c;也能讓知識體系更扎實&#xff0c;供大家參考&#xff0c;歡迎討論。在數據庫并發操作…

【Cursor-Gpt-5-high】StackCube-v1 任務訓練結果不穩定性的分析

1. Prompt 我是機器人RL方向的博士生正在學習ManiSkill&#xff0c;在學習時我嘗試使用相同命令訓練同一個任務&#xff0c;但是我發現最終的 success_once 指標并不是相同的&#xff0c;我感到十分焦慮&#xff0c; 我使用的命令如下&#xff1a; python sac.py --env_id"…

文檔權限設置不合理會帶來哪些問題

文檔權限設置不合理會導致信息泄露、合規風險、協作效率下降、責任難以追溯、知識資產流失、員工信任受損、管理成本增加、企業戰略受阻。這些問題不僅影響日常運營&#xff0c;更會對企業的長遠發展構成威脅。根據IBM《2024數據泄露成本報告》&#xff0c;全球企業因數據泄露的…

Linux網絡服務——基礎設置

網絡服務命令1.ping命令作用&#xff1a;測試網絡連通性&#xff08;使用icmp協議&#xff09;常見選項&#xff1a;-c&#xff1a;指定ping的次數&#xff0c;默認無限次-I&#xff1a;指定發送請求的網卡[rootlocalhost ~]# ping 192.168.77.78 -c 4 -I ens160 PING 192.168.…

【multisim汽車尾燈設計】2022-12-1

緣由multisim汽車尾燈設計-學習和成長-CSDN問答 為什么模仿別人做的運行沒啥效果&#xff0c;啥也看不明白&#xff0c;數字電子技術要做的任務。

Langchain在調用 LLM 時統計 Token 消耗

關鍵點解析使用上下文管理器with get_openai_callback() as cb:這一行是核心。cb 會自動收集本次調用的 prompt tokens、completion tokens 以及 total tokens。自動統計在上下文退出時&#xff0c;cb 中已經包含了這次調用的消耗情況&#xff0c;無需額外手動計算。累加到全局…

漫談《數字圖像處理》之實時美顏技術

隨著移動拍攝、直播、短視頻等場景的普及&#xff0c;用戶對 “自然、流暢、可控” 的美顏效果需求日益提升 —— 既要消除皮膚瑕疵、優化面部形態&#xff0c;又需避免 “過度磨皮顯假”“變形失真”“實時卡頓” 等問題。實時美顏技術的核心并非單一算法的堆砌&#xff0c;而…

MATLAB基于PSO(粒子群算法)優化BP神經網絡和NSGA-II(非支配排序遺傳算法)多目標優化

代碼實現了一個智能算法優化BP神經網絡并進行多目標優化的完整流程&#xff0c;結合了PSO&#xff08;粒子群算法&#xff09;優化BP神經網絡和NSGA-II&#xff08;非支配排序遺傳算法&#xff09;多目標優化&#xff0c;用于多輸入多輸出的回歸預測問題。 ? 一、主要功能 數…

白平衡分塊統計數據為什么需要向下采樣?

在白平衡處理中&#xff0c;分塊統計數據時引入**向下采樣&#xff08;Downsampling&#xff09;**&#xff0c;核心目標是在保證統計有效性的前提下&#xff0c;解決“計算效率”與“統計魯棒性”的矛盾&#xff0c;同時避免局部噪聲對白平衡判斷的干擾。要理解這一設計的必要…

Deathnote: 1靶場滲透

Deathnote: 1 來自 <Deathnote: 1 ~ VulnHub> 1&#xff0c;將兩臺虛擬機網絡連接都改為NAT模式 2&#xff0c;攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.128&#xff0c;靶場IP192.168.23.129 3&#xff0c;對靶機進行端口…

windows系統服務器測試部署springboot+vue+mysql項目

1. 后端Java應用啟動 直接使用命令行啟動&#xff08;推薦用于測試&#xff09;&#xff1a; cd C:\Users\Administrator\Desktop\toolset\backed java -jar -Dspring.profiles.activeprod -Dserver.port8083 admin.jar2. 前端靜態文件服務 由于你已經有了dist目錄&#xff0c;…

Java 與 Docker 的最佳實踐

在云原生時代&#xff0c;Docker 已成為應用交付和運行的事實標準。Java 作為企業級開發的主力語言&#xff0c;也需要與容器技術深度結合。然而&#xff0c;Java 程序天然有 JVM 內存管理、啟動速度、鏡像體積 等特點&#xff0c;如果不做優化&#xff0c;可能導致性能下降甚至…

大數據工程師認證推薦項目:基于Spark+Django的學生創業分析可視化系統技術價值解析

&#x1f496;&#x1f496;作者&#xff1a;計算機編程小央姐 &#x1f499;&#x1f499;個人簡介&#xff1a;曾長期從事計算機專業培訓教學&#xff0c;本人也熱愛上課教學&#xff0c;語言擅長Java、微信小程序、Python、Golang、安卓Android等&#xff0c;開發項目包括大…

【MySQL自學】SQL主鍵使用誤區:你必須知道的關鍵細節

在日常數據庫操作中&#xff0c;主鍵&#xff08;Primary Key&#xff09;是我們最常打交道的概念之一。然而&#xff0c;許多開發者&#xff0c;尤其是初學者&#xff0c;常常對其存在一些誤解。一個非常經典的問題是&#xff1a;“在SQL中&#xff0c;只要用到主鍵&#xff0…

Electron 執行python腳本

1 需求背景 有個需求需要Electron執行在本地執行python腳本。希望通過Electron調用python服務并且實現雙向通信。 2 解決思路 使用Electon 的{ exec, spawn, execFile, fork } from "child_process"; 能力來執行python腳本&#xff0c;使用spawn可以實現持續交互&…

Leetcode高頻 SQL 50 題(基礎版)題目記錄

Leetcode sql題目記錄 文章目錄Leetcode sql題目記錄570. 至少有5名直接下屬的經理1934. 確認率1193. 每月交易I1174. 即時食物配送II176. 第二高的薪水&#xff08;1&#xff09; 子查詢為空但外層用了聚合函數&#xff08;2&#xff09;子查詢為空而外層沒有聚合函數550. 游戲…

RAGFlow切分方法詳解

RAGFlow 各切分方法的含義如下,結合文檔結構、場景特點等設計,以適配不同類型的知識源: 1. General(通用分塊) 邏輯:結合文本排版、格式、語義關聯等因素確定分割點,再根據“建議文本塊大小(Token 數)”,將文本切分為合適的塊。 支持格式:DOCX、EXCEL、PPT、IMAGE、…

支付域——支付與交易概念

摘要本文詳細闡述了支付域中支付與交易的核心概念及其相互關系。交易是商品或服務交換的過程&#xff0c;包含多個要素并產生訂單或合同。支付則是資金流轉的過程&#xff0c;是交易的資金結算環節。支付交易結合了兩者&#xff0c;根據不同場景提供多樣化的支付產品和服務。文…