通信協議之串口

文章目錄

  • 簡介
  • 電平標準
  • 串口參數及時序
  • USART與UART
  • 過程
  • 引腳配置

簡介

  • 點對點,只能兩設備通信
  • 只需單向的數據傳輸時,可以只接一根通信線
  • 當電平標準不一致時,需要加電平轉換芯片(一般從控制器出來的是信號是TTL電平)
  • 地位先行

電平標準

TTL電平:+3.3V或+5V表示1,0V表示0
RS232電平:-3~-15V表示1,+3~+15V表示0
RS485電平:兩線壓差+2~+6V表示1,-2~-6V表示0(差分信號)

串口參數及時序

波特率:串口通信的速率
起始位:標志一個數據幀的開始,固定為低電平
數據位:數據幀的有效載荷,1為高電平,0為低電平,低位先行
校驗位:用于數據驗證,根據數據位計算得來(奇檢驗:包括檢驗位在內的9個數據的1是奇數個)
停止位:用于數據幀間隔,,固定為高電平,空閑時也為高電平,長度0.5,1,1.5,2常用1
字長:8位和9位,一般是8位無校驗和9位有校驗

  • 無檢驗
    在這里插入圖片描述
  • 有校驗在這里插入圖片描述

USART與UART

USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/異步收發器
UART是異步
串口一般很少用同步功能

過程

  • 發送:先到發送數據寄存器(TDR),再到發送移位寄存器,把一個字節的數據一位一位地向右移出去(低位先行)
    • 當發送時,數據先在TDR,檢測發送移位寄存器是否非空,空則將數據移動到發送移位寄存器,再置標志位TXE(TX Empty),發送寄存器空,若該標志位置1(數據還沒發送出去,只是在發送移位寄存器中),就可以向TDR寫入下一個數據了
  • 接收:先到接收移位寄存器,把發過來的位一位一位接收,再到接收數據寄存器(RDR)
    • 過程與上面類似,RDR有數據置標志位RXNE,置1就可以把數據讀走

引腳配置

  • TX引腳:復用推挽
  • RX:浮空或上拉輸入

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

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

相關文章

Unity編輯器功能及拓展(1) —特殊的Editor文件夾

Unity中的Editor文件夾是一個具有特殊用途的目錄,主要用于存放與編輯器擴展功能相關的腳本和資源。 一.糾纏不清的UnityEditor 我們Unity中進行游戲構建時,我們經常遇到關于UnityEditor相關命名空間丟失的報錯,這時候,只得將報錯…

工具類-csv文件導入數據庫思路

首先,讓我們來看下數據庫建表語句: CREATE TABLE behavior_reports (id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 報告ID,report_type VARCHAR(50) NOT NULL COMMENT 報告類型(daily, weekly, monthly),start_date DATE NOT NULL COMMENT 開始日期,e…

軟件工程之軟件開發模型(瀑布、迭代、敏捷、DevOps)

1. 瀑布模型(Waterfall Model) 定義與流程 瀑布模型是線性順序的開發流程,包含需求分析、設計、編碼、測試、維護等階段,每個階段完成后才能進入下一階段,類似“瀑布流水”逐級推進。 核心特點 嚴格階段劃分&#…

FreeRTOS與RT-Thread內存分配對比分析

一、動態內存分配策略 ?FreeRTOS ?分配算法多樣性:提供5種動態內存管理算法(heap_1至heap_5),覆蓋從簡單到復雜的場景。例如: heap_1:僅支持分配不支持釋放,適用于固定任務棧分配。heap_4&…

202519 | Mybatis-Plus

快速入門 MyBatis-Plus(簡稱 MP)是 MyBatis 的增強工具,它在 MyBatis 的基礎上只做增強不做改變,簡化了開發,提高了效率。以下是 MyBatis-Plus 的快速入門指南,幫助您快速上手使用。 1. 環境準備 JDK&…

Linux C語言調用第三方庫,第三方庫如何編譯安裝

在 Linux 環境下使用 C 語言調用第三方庫時,通常需要先對第三方庫進行編譯和安裝。以下為你詳細介紹一般的編譯安裝步驟,并給出不同類型第三方庫(如使用 Makefile、CMake 構建系統)的具體示例。 一般步驟 1. 獲取第三方庫源碼 …

linux基本命令(1)--linux下的打包命令 -- tar 和gzip

tar 解壓 ,打包 語法:tar [主選項輔選項] 文件或者目錄 使用該命令時,主選項是必須要有的,它告訴tar要做什么事情,輔選項是輔助使用的,可以選用。 主選項: c 創建新的檔案文件。如果用戶想備…

Python 序列構成的數組(對序列使用+和_)

對序列使用和* Python 程序員會默認序列是支持 和 * 操作的。通常 號兩側的序列由 相同類型的數據所構成,在拼接的過程中,兩個被操作的序列都不會被 修改,Python 會新建一個包含同樣類型數據的序列來作為拼接的結果。 如果想要把一個序列…

[ C語言 ] | 從0到1?

目錄 認識計算機語言 C語言 工欲善其事必先利其器 第一個C語言代碼 這一些列 [ C語言 ] ,就來分享一下 C語言 相關的知識點~ 認識計算機語言 我們說到計算機語言,語言,就是用來溝通的工具,計算機語言呢?就是我們…

【通道注意力機制】【SENet】Squeeze-and-Excitation Networks

0.論文摘要 卷積神經網絡建立在卷積操作的基礎上,通過融合局部感受野內的空間和通道信息來提取有意義的特征。為了增強網絡的表示能力,最近的一些方法展示了增強空間編碼的好處。在本研究中,我們專注于通道關系,并提出了一種新穎…

kubernetes Calico(CNI) NetworkPolicy 流量管理 設置networkpolicy 策略 下集

1、kubernetes 網絡策略(網絡隔離策略) Network Policy 是 Kubernetes 中用于控制 Pod 之間網絡通信的一種機制。它通過定義規則,限制哪些 Pod 或外部實體可以與目標 Pod 通信(基于標簽、命名空間、端口等)。Network …

sqlmap基礎命令總結

?注意事項:僅用于授權測試,避免非法使用。 目錄 ?一、基礎命令 ?二、數據庫信息獲取 ?三、繞過 WAF/IDS ?四、文件系統與系統命令 ?五、高級功能與優化 ?六、實戰示例 ?一、基礎命令 ?檢測注入點 sqlmap -u "http://target.com/index.php?id1&…

Unity光線傳播體積(LPV)技術實現詳解

一、LPV技術概述 光線傳播體積(Light Propagation Volumes)是一種實時全局光照技術,通過將場景中的間接光信息存儲在3D網格中,實現動態物體的間接光照效果。 核心優勢: 實時性能:相比傳統光照貼圖,支持動態場景 硬件…

SpringBoot (一) 自動配置原理

目錄 一 自動配置 1:數據源的手動配置 1:SpringBoot的自動配置 二 自動配置的完整流程:(底層) 1. 場景化依賴與Starter機制 2. 主程序入口與注解驅動 3. 自動配置類的加載與篩選 4. 自動配置類的實現邏輯 5. 自動配置的觸發與執行流…

OJ題:移動零

雙指針法 c 語言實現 void moveZeroes(int* nums, int numsSize) {int dest,cur; //創建臨時指針和目標指針destcur0;//出初始化while(cur<numsSize)//遍歷{if(nums[cur]!0){swap(&nums[cur],&nums[dest]);cur;dest;}else{cur;}}} 思路是建立兩個指針&#xff0…

pycharm終端操作遠程服務器

pycharm項目已經連接了遠程服務器&#xff0c;但是打開終端&#xff0c;卻依舊顯示的是本地的那個環境&#xff0c;也就是說沒有操作遠程的那個環境。只能再使用Xshell去操作遠程環境&#xff0c;很麻煩&#xff0c;找了下教程。 來源&#xff1a;https://blog.csdn.net/maolim…

(頭歌作業—python)3.2 個人所得稅計算器(project)

第1關&#xff1a;個人所得稅計算器 任務描述 本關任務&#xff1a;編寫一個個人所得稅計算器的小程序。 相關知識 個人所得稅繳納標準 2018 年 10 月 1 日以前&#xff0c;個稅免征額為 3500 元/月&#xff0c;調整后&#xff0c;個稅免征額為 5000 元/月&#xff0c; 7 級超…

Redis場景問題1:緩存穿透

Redis 緩存穿透是指在緩存系統&#xff08;如 Redis&#xff09;中&#xff0c;當客戶端請求的數據既不在緩存中&#xff0c;也不在數據庫中時&#xff0c;每次請求都會直接穿透緩存訪問數據庫&#xff0c;從而給數據庫帶來巨大壓力&#xff0c;甚至可能導致數據庫崩潰。下面為…

CUDA Memory Fence 函數的功能與硬件實現細節

CUDA Memory Fence 函數的功能與硬件實現細節 Memory Fence 的基本功能 CUDA中的memory fence函數用于控制內存操作的可見性順序&#xff0c;確保在fence之前的內存操作對特定范圍內的線程可見。主要功能包括&#xff1a; 排序內存操作&#xff1a;確保fence之前的內存操作在…

實戰篇Redis

黑馬程序員的Redis的筆記&#xff08;后面補一下圖片&#xff09; 【黑馬程序員Redis入門到實戰教程&#xff0c;深度透析redis底層原理redis分布式鎖企業解決方案黑馬點評實戰項目】https://www.bilibili.com/video/BV1cr4y1671t?p72&vd_source001f1c33a895eb5ed820b9a4…