【單片機day03】

UART串口

通用異步收發器,2個串口(1個串口被用于ISP下載程序,1個串口被用于和主機之間的通信)

全雙工(兩根線TX、RX)、串行、異步

通信方式:

  • 單工:
    • 發送方和接收方是固定的,數據只能從發送方? 發給? 接收方
    • 數據傳輸通過一根信號線實現
    • 數據傳輸方向固定
  • 半雙工:(I2C)
    • 發送方和接收方不是固定的,通信雙方都可發可收
    • 數據傳輸通過一根信號線,數據的傳輸方向是雙向的
    • 但同一時刻數據傳輸方向是單一的(A給B發的時候,B只能接收)
  • 全雙工:(UART)
    • 通信雙方既可作為發送方,也可作為接收方
    • 數據傳輸通過兩根信號線
    • 數據傳輸方向在任意時刻都是雙向的

數據傳輸的順序:

Uart在傳輸數據時,遵循LSB優先原則(低位先行),先發低位數據

數據傳輸的形式:

  • 串行:通過一根信號線傳輸數據,按照先后次序逐個bit逐個bit去發送數據
  • 并行:通過多根信號線同時去傳輸數據

串行傳輸和并行傳輸的區別:

  • 串行:
    • 傳輸速率慢(只能通過一根線逐個bit去傳輸)
    • 硬件成本低,實現簡單
    • 傳輸距離遠,抗干擾性好(RS485差分)
  • 并行:
    • 傳輸速率快,可以通過多跟線同時傳輸多個Bit
    • 硬件成本高,實現復雜
    • 傳輸距離近,抗干擾性差(理論上30米內,)

串口通信時序:

  • 串口通信時,空閑狀態為高電平
  • 當由高電平變為低電平(發送一個低電平信號),代表發送了一個起始位,準備開始通信
  • 發送數據(通常是8bit,遵循先發數據低位LSB原則)
  • 再發送一個Bit的校驗位,(奇偶校驗)

  • 校驗
    • 奇偶校驗(串口):

      • 奇 校驗:校驗位 為1,若數據位中,“1” 的個數加上校驗位 “1” 的個數,保持奇數個,代表校驗通過(奇校驗,奇數個1)。
      • 偶 校驗:校驗位為0,若數據位中“1”的個數 + 校驗位“0”的個數,保持1的個數位偶數個,代表校驗通過。(偶校驗,偶數個1)
      • 缺點:無法檢測 偶數個bit出錯的問題
    • 累加和 校驗
    • CRC校驗(Modbus協議)

串口通信參數:

波特率:

bps(bit per second),每秒鐘傳輸bit的數量,常見的波特率:2400, 4800 , 9600,115200

數據位:

8, 串口傳輸通常8bit 數據位傳輸

停止位:

1,? 1bit停止位

校驗位:

None,N,無校驗
Even,E,偶校驗
Odd,0,奇校驗

同步通信、異步通信

I2C:SCL?時鐘線
SPI:SCLK?時鐘線
UART:無時鐘線?異步

  • 同步:
    • 通信的雙方有一根共享的時鐘線來約定通信的頻率(同步發送數據/接收數據)
  • 異步:
    • 通信雙方沒有時鐘線進行同步,如Uart:可以通過設置波特率來實現同步(發:2400bps 收:2400bps)

串口寄存器配置:

串口的波特率發生器依賴于定時器1(Timer1)

  • SCON/PCON串口控制寄存器:

  • PCON寄存器中的bit6?置0代表通過SCON寄存器中SM0和SM1兩位指定串口工作方式:
    • 將SCON寄存器中的bit6和bit7清0
    • 將SCON寄存器中的SM1 bit6置1,SM0 bit7清0,代表串口工作8位UART模式
    • 將SCON寄存器中REN bit4置1,代表允許串口接收數據
    • SCON寄存器中bit1 TI位,代表串口8位數據發送完畢硬件自動置1,但需要軟件清0(用來檢測)
    • SCON寄存器bit0 RI位,代表串口8位數據接收完畢硬件自動置1,但需要軟件清0? (用來檢測)
    • PCON寄存器SMOD?bit7位置1,代表波特率加倍
  • 定時器寄存器相關配置:

  • TMOD?定時器模式選擇寄存器:
    • 將TMOD寄存器中的高四位清0(定時器1)
    • 將TMOD寄存器中的bit5置1,bit4清0,代表定時器1工作在8位自動重裝載模式
    • 將定時器初值寫入到TL1和TH1
    • 將TCON寄存器中的bit6置1,代表允許定時器1開始計數
  • 中斷寄存器相關配置:

  • IE中斷控制寄存器:
    • 將IE寄存器中的bit7?EA位置1,代表CPU能夠響應所有中斷
    • 將IE寄存器中的bit4 ES位置1,代表允許串口產生中斷

定義數組時:xdata char buf[32] = {0xAA, 0xBB,0xCC};

存儲在片外RAM中,不加xdata,會存儲在片內RAM中(只有256byte)

主從應答:

主從應答就是通信協議里,主機發起請求,從機必須返回確認(ACK/NACK或數據幀),以保證數據傳輸的可靠性和交互性。

  • 主機:擁有對通信絕對控制權,通信都是由主機發起
  • 從機:無法直接發起通信,只能根據主機下發的指令完成對應操作

主機 -> 從機:

功能碼 0000 0001

從機 -> 主機:

功能碼:1000 0001? ?也就是81

bit 7最高位:數據流向位

0:主機 -> 從機

1:從機 -> 主機

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

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

相關文章

react16到react19更新及底層實現是什么以及區別

好問題 👍。React 16 → 19 的更新跨度其實涵蓋了 React 的幾個“時代級”的演進:從 Fiber 架構 的重寫、到 并發特性 的引入,再到 React Server Components 和 現代語法支持。我幫你梳理下主要更新點和底層實現的區別,方便你系統…

【分享】基于百度腦圖,并使用Vue二次開發的用例腦圖編輯器組件

偶然間發現了這個項目,分享出來。 【分享】基于百度腦圖,并使用Vue二次開發的用例腦圖編輯器組件1 項目地址2 項目簡介3 項目部署3.1 安裝node和npm3.2 項目下載3.3 修改npm鏡像源3.4 部署4 項目中使用1 項目地址 基于百度腦圖,并使用Vue二次…

Kotlin中抽象類和開放類

抽象類 (Abstract Class) 定義和特點 抽象類使用 abstract 關鍵字聲明,是一種不能被直接實例化的特殊類,主要用于被其他類繼承。 abstract class Base {open fun f() {} }abstract class Derived : Base() {override abstract fun f() // 抽象成員在類中…

TensorFlow深度學習實戰(37)——深度學習的數學原理

TensorFlow深度學習實戰(37)——深度學習的數學原理0. 前言1. 反向傳播歷史2. 微積分相關概念2.1 向量2.2 導數和梯度2.3 梯度下降2.4 鏈式法則2.5 常用求導公式2.6 矩陣運算3. 激活函數4. 反向傳播4.1 前向計算4.2 反向傳播5. 交叉熵及其導數6. 批量梯度…

1.1 汽車運行滾動阻力

汽車運行阻力由4部分構成:滾動阻力、空氣阻力、坡度阻力、加速阻力。 1).汽車在水平道路上等速行駛時,必須克服來自地面的滾動阻力和來自空氣的空氣阻力。 2). 當汽車在坡道上上坡行駛時,還必須克服重力沿坡道的分力,稱為坡度阻…

e203000

1)①BIU作為核心通信樞紐,主要承擔兩大功能:一是連接處理器核內的關鍵執行單元(包括IFU、LSU和EAI協處理器),統一管理指令和數據的內部傳輸路徑;二是作為"核內計算"與"核外資源&…

Infortrend普安科技IEC私有云平臺VM解決方案

Infortrend企業云(IEC)內置Hypervisor運行VM。功能完整、無需額外付費。在本文中,我們將為您詳細介紹IEC是如何支持 VM的。市場現狀與挑戰市場現狀 虛擬化市場面臨轉型,主流廠商(如 VMware)改用訂閱制…

【代碼隨想錄算法訓練營——Day6(Day5周日休息)】哈希表——242.有效的字母異位詞、349.兩個數組的交集、202.快樂數、1.兩數之和

LeetCode題目鏈接 https://leetcode.cn/problems/valid-anagram/ https://leetcode.cn/problems/intersection-of-two-arrays/ https://leetcode.cn/problems/happy-number/ https://leetcode.cn/problems/two-sum/ 題解 242.有效的字母異位詞 這道題要想到用哈希表來做。同時注…

安科瑞基站智慧運維云平臺:安全管控與節能降耗雙效賦能

功能:基站智慧用電云平臺通過對5G宏站和室分站點加裝交/直流智能監控設備、無線采集設備以及系統管理平臺,完成夜間無業務時段的下電操作,減少電能消耗,降低運營成本支出,以及提升通信設備供電線路狀態的實時監測保護功…

處理省市區excel數據加工成SQL

原始數據相關內容鏈接 處理excel數據加工成SQL的腳本 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Excel行政區域數據轉SQL腳本 - 支持特殊行政單位處理(如省直轄縣級行政單位) - 支持批量處理 """import pand…

雙碳目標下的24小時分時綜合能源系統低碳優化調度:基于 Matlab/YALMIP/CPLEX的方法與仿真

在“雙碳”戰略目標的推動下,綜合能源系統(Integrated Energy System, IES)已成為實現能源結構優化與碳排放控制的重要途徑。本文以光伏、風電、燃氣—電熱聯產(CHP)、燃氣鍋爐、電鍋爐、電儲能以及碳捕集(…

TDengine 選擇函數 Last() 用戶手冊

LAST() 函數用戶手冊 函數定義 LAST(expr)功能說明 LAST() 函數統計表/超級表中某列的值最后寫入的非 NULL 值,即返回時間戳最大的非 NULL 值。 版本要求 最低版本: v3.0.0.0 返回值 數據類型: 同應用的字段返回內容: 時間戳最大的非 NULL 值及其對應的時間戳…

< 自用文 學習 > 用 Claude Code 做一個日歷

環境: OS: Windows 11 IDE:TREA Model: Sonnet / Qwen (免費 Token 用完) 參考: Claude Code Beginner Guide – Get Started in 20 Minutes (2025) by Alex Finn 油管博客 https://www.youtube.com/watch?viYiuzAsWnHU&listTLGG1L…

Gmail 數據泄露安全警報以及啟示

目前,大規模數據泄露和針對性釣魚攻擊持續威脅著數十億 Gmail 用戶的安全,受ShinyHunters、UNC6040、UNC6395等威脅組織攻擊,25 億 Gmail 用戶面臨極大風險;攻擊者已從暴力破解轉向社會工程學與混合勒索,而密碼復用、弱…

2024年6月GESPC++三級真題解析(含視頻)

視頻講解:GESP2024年6月三級C真題講解 一、單選題 第1題 解析: 答案C, 認證語言有C/C、Python、Scratch 第2題 解析: 答案B,判斷閏年口訣“ 4閏 100不閏 400再閏 ” 第3題 解析: 答案C&#xff…

AiPPT生成的PPT內容質量怎么樣?會不會出現邏輯混亂或數據錯誤?

作為一個每天要和 PPT 打交道的職場人,我用 AiPPT快一年了,從最初的 “試試看” 到現在的 “離不開”,最讓我驚喜的就是它生成的 PPT 內容質量 —— 不僅邏輯清晰、數據專業,還能精準貼合不同場景需求,完全沒遇到過邏輯…

DINOv3 新穎角度解釋

1. Gram錨定(Gram Anchoring)的創新視角 新穎角度:oriane_simeoni(Meta AI研究人員)在X上分享了一個關于Gram錨定的深入線程,強調這一技術如何解決自監督學習中長期訓練導致的特征圖退化問題。 解釋&#x…

【T2I】Discriminative Probing and Tuning for Text-to-Image Generation

paper:CVPR 2024 2403 https://arxiv.org/abs/2403.04321 code: https://github.com/LgQu/DPT-T2IAbstract 盡管文本到圖像生成(T2I)取得了進展,但先前的方法往往面臨文本 -圖像對齊問題,例如生成圖像中的關…

【CentOS7】使用yum安裝出錯,報HTTPS Error 404 - Not Found

【CentOS7】使用yum安裝出錯,報HTTPS Error 404 - Not Found問題描述解決辦法博主有話說問題描述 在CentOS7中安裝docker,切換了國內的鏡像源進行yum安裝,始終報如下錯誤:HTTPS Error 404 - Not Found 正在嘗試其他鏡像&#xff…

vulnhub:Kioptrix level 2

0x00、環境下載 鏈接:https://www.vulnhub.com/entry/kioptrix-level-11-2,23/ 0x01、前期準備 1.1、檢查文件 hash值對比無誤后解壓 1.2、編輯虛擬機網卡 當不支持橋接時候,如練WiFi無無線網卡 方法1: 修改type為nat 方法2:將…