12-串口外設

一、串口外設的基本概述

1、基本定義

串口通信,通過在通信雙方之間以比特位(bit)的形式逐一發送或接收數據,實現了信息的有效傳遞。其通信方式不僅簡單可靠,而且成本很低。

2、stm32的串口

?下面是兩個MCU的數據交互,通過連接MCU的UART外設,實現數據通信交互

3、USART外設的基本概念

1.USART是一個全雙工通用同步/異步串行收發模塊,該接口是一個高度靈活的串行通信設備

2.UART和USART的區別:

3.處理器和外部設備通信的兩種方式:并行通信和串行通信

并行通信(多車道)

??? -傳輸原理:數據各個位同時傳輸。

??? -優點:速度快

??? -缺點:占用引腳資源多

使用場景:要求數據傳輸快,如果外部RAM、LCD、Camera等

串行通信(單車道)

?? -傳輸原理:數據按位順序傳輸。

??? -優點:占用引腳資源少

??? -缺點:速度相對較慢

使用場景:要求占用引腳少,使用串口藍牙、串口WIFI、SPIRFID卡、SPILCD屏等

4.串行通信按傳送方向分:

a.單工:

???????????數據傳輸只支持數據在一個方向上傳輸(收音機、遙控器)

b.半雙工:

???????????允許數據在兩個方向上傳輸,但是,在某一時刻,只允許數

???????????據在一個方向上傳輸,它實際上是一種切換方向的單工通信;(對講機)

c.全雙工:

???????????允許數據同時在兩個方向上傳輸,因此,全雙工通信是兩個

???????????單工通信方式的結合,它要求發送設備和接收設備都有獨立

???????????的接收和發送能力。(電話機)

二、stm32串口--USART(習慣叫串口,串口為全雙工通信)

1.串口信號分析:

TXD 發送數據 Transmit(tx) Data 簡寫形式?(TX ?T ?TD)

RXD 接受數據 Receive(rx) Data ? 簡寫形式?(RX ?R ?RD)

2.數據幀格式

傳輸一個字節,需要包括起始位(1位)、數據位(7、8、9位)、校驗位(可選)、停止位(1位)

如:

3.奇偶檢驗位

????????奇偶校驗是一種校驗代碼傳輸正確性的方法,它根據被傳輸的一組二進制代碼數位中1的個數是奇數或偶數來進行校驗。采用奇數的稱為奇校驗,反之,稱為偶校驗。在STM32的串口通信中,奇偶校驗主要用于檢測數據傳輸過程中的錯誤。如果接收端收到的數據中1的個數與約定的奇偶性不符,則認為發生了傳輸錯誤。雖然奇偶校驗只能檢測出部分誤碼(如1位誤碼),并且不能糾錯,但由于其實現簡單,仍得到了廣泛使用。

雖然奇偶校驗可以檢測數據傳輸過程中的錯誤,實際使用過程一般不使用它。除非在一些工控產品中可以考慮使用。增加數據傳輸判斷可靠性

4.流控(了解即可)

???????????數據在兩個串口之間進行通訊的時候常常會出現丟失數據的現象,比如兩臺計算機或者是一臺計算機和一個單片機之間進行通訊,當接收端的數據緩沖區已經滿了,這個時候如果還有數據發送過來,因為接收端沒有時間進行處理,那這樣的數據就有可能會丟失。在工業現場或者其他領域,經常會遇到這種問題,本質原因是速度不匹配、處理能力不匹配。比如單片機的主頻只有20M或30M,ARM的處理能力可能是200M,PC機的處理能力是幾個G,這種處理能力的不匹配造成了傳輸的時候數據容易丟失。

????????硬件流控就是來解決這個速度匹配的問題。它的基本含義非常簡單,當接收端接收到的數據處理不過來時,就向發送端發送不再接收的信號,發送端接收到這個信號之后就會停止發送,直到收到可以繼續發送的信號再繼續發送。因此流控本身是可以控制數據傳輸的進度,進而防止數據丟失。

4.1硬件流控

  • RTS(Require To Send,發送請求)為輸出信號
  • CTS(Clear To Send,發送允許)為輸入信號

5.串行通信的傳送速率

????????串行通信的傳送速率:在串行通信中,數據是按位進行傳送的,因此傳送速率用每秒鐘傳送格式位的數目來表示,稱之為波特率(band rate)。每秒傳送一個格式位就是1波特。

bps:每秒傳輸多少比特位數據

9600bps:每秒傳輸9600位數據,波特率參考值,常見波特率:9600bps 115200bps

注意:兩個MCU之間進行通信,數據幀格式及波特率必須是相同的,如果不同,則會出現數據傳輸異常。

波特率傳輸時有一定的誤差,波特率值越高,誤越大。這一點需要注意。

?

三、USART1配置流程

1、串口程序時,需要注意將stm32f4xx.h第127行25000000改為8000000,修改后,如下

  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */

2、需要注意將system_stm32f4xx.c第254行25改為8,修改后,如下

#define PLL_M     8

3、理解電路原理圖

PA9 ?---- USART1_TX(發送端)

PA10 ---- USART1_RX(接收端)

下面是手機藍牙控制開發板燈的源碼

https://download.csdn.net/download/m0_63622771/90835799

四、串口軟件的使用方法

1、安裝驅動:CH340

2、安裝軟件:porthelper(單片機多功能調試助手-最新版本1.8.9-CSDN博客)

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

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

相關文章

NE555雙音門鈴實驗

1腳為地。通常被連接到電路共同接地。 2腳為觸發輸入端。 3腳為輸出端&#xff0c;輸出的電平狀態受觸發器的控制&#xff0c;而觸發器受上比較器6腳和下比較器2腳的控制。當觸發器接受上比較器A1從R腳輸入的高電平時&#xff0c;觸發器被置于復位狀態&#xff0c;3腳輸出低電…

Redis分布式鎖實現

概述 為什么要要分布式鎖 在并發編程中&#xff0c;我們通過鎖&#xff0c;來避免由于競爭而造成的數據不一致問題。 通常&#xff0c;我們以synchronized 、Lock來使用它。Java中的鎖&#xff0c;只能保證在同一個JVM進程內中執行 如果需要在分布式集群環境下的話&#xff0…

軟件設計師-錯題筆記-網絡基礎知識

1. 解析&#xff1a; 1.子網劃分相關知識&#xff1a; 在IPv4地址中&#xff0c;/27表示子網掩碼為255.255.255.224&#xff0c;它將一個C類網絡&#xff08;默認子網掩碼255.255.255.0&#xff09;進一步劃分 對于子網掩碼255.255.255.224&#xff0c;其對應的二進制為111…

Fine-Tuning Llama2 with LoRA

Fine-Tuning Llama2 with LoRA 1. What is LoRA?2. How does LoRA work?3. Applying LoRA to Llama2 models4. LoRA finetuning recipe in torchtune5. Trading off memory and model performance with LoRAModel ArgumentsReferences https://docs.pytorch.org/torchtune/ma…

python打卡day29

類的裝飾器 知識點回顧 類的裝飾器裝飾器思想的進一步理解&#xff1a;外部修改、動態類方法的定義&#xff1a;內部定義和外部定義 回顧一下&#xff0c;函數的裝飾器是 &#xff1a;接收一個函數&#xff0c;返回一個修改后的函數。類也有修飾器&#xff0c;類裝飾器本質上確…

十一、STM32入門學習之FREERTOS移植

目錄 一、FreeRTOS1、源碼下載&#xff1a;2、解壓源碼 二、移植步驟一&#xff1a;在需要移植的項目中新建myFreeRTOS的文件夾&#xff0c;用于存放FREERTOS的相關源碼步驟二&#xff1a;keil中包含相關文件夾和文件引用路徑步驟三&#xff1a;修改FreeRTOSConfig.h文件的相關…

2025 年十大網絡安全預測

隨著我們逐步邁向 2026 年&#xff0c;網絡安全領域正處于一個關鍵的轉折點&#xff0c;技術創新與數字威脅以前所未有的復雜態勢交織在一起。 地緣政治環境進一步加劇了這些網絡安全挑戰&#xff0c;國際犯罪組織利用先進的技術能力來追求戰略目標。 人工智能在這一不斷演變…

Mac 環境下 JDK 版本切換全指南

概要 在 macOS 上安裝了多個 JDK 后&#xff0c;可以通過系統自帶的 /usr/libexec/java_home 工具來查詢并切換不同版本的 Java。只需在終端中執行 /usr/libexec/java_home -V 列出所有已安裝的 JDK&#xff0c;然后將你想使用的版本路徑賦值給環境變量 JAVA_HOME&#xff0c;…

中級網絡工程師知識點6

1.堆疊方式可以共享使用交換機背板帶寬&#xff1b;級聯方式可以使用雙絞線將交換機連接在一起 2.光功率計是專門測量光功率大小的儀器&#xff0c;在對光纜進行檢測時&#xff0c;通過在光纜的發送端和接收端分別測量光功率&#xff0c;進而計算出光衰情況。 3.光時域反射計…

動態規劃——烏龜棋

題目描述 解題思路 首先這是一個很明顯的線性dp的題目&#xff0c;很容易發現規律 數據輸入 我們用 h[ N ] 數組存儲每一個格子的分數 用 cnt [ ]&#xff0c;數組表示每一中卡片的數目 1&#xff0c;狀態表示 因為這里一個有4種跳躍方式可以選擇 f[ i ][ a ][ b ][ c ][ d…

C#自定義控件-實現了一個支持平移、縮放、雙擊重置的圖像顯示控件

1. 控件概述 這是一個繼承自 Control 的自定義控件&#xff0c;主要用于圖像的顯示和交互操作&#xff0c;具有以下核心功能&#xff1a; 圖像顯示與縮放&#xff08;支持鼠標滾輪縮放&#xff09;圖像平移&#xff08;支持鼠標拖拽&#xff09;視圖重置&#xff08;雙擊重置…

C++ map multimap 容器:賦值、排序、大小與刪除操作

概述 map和multimap是C STL中的關聯容器&#xff0c;它們存儲的是鍵值對(key-value pairs)&#xff0c;并且會根據鍵(key)自動排序。兩者的主要區別在于&#xff1a; map不允許重復的鍵multimap允許重復的鍵 本文將詳細解析示例代碼中涉及的map操作&#xff0c;包括賦值、排…

AI Agent開發第70課-徹底消除RAG知識庫幻覺(4)-解決知識庫問答時語料“總重復”問題

開篇 “解決知識庫幻覺”系列還在繼續,這是因為:如果只是個人玩玩,像自媒體那些說的什么2小時搭一個知識庫+deepseek不要太香一類的RAG或者是基于知識庫的應用肯定是沒法用在企業級落地上的。 我們真的經歷過或者正在經歷的人都是知道的,怎么可能2小時就搭建完成一個知識…

【DAY22】 復習日

內容來自浙大疏錦行python打卡訓練營 浙大疏錦行 仔細回顧一下之前21天的內容 作業&#xff1a; 自行學習參考如何使用kaggle平臺&#xff0c;寫下使用注意點&#xff0c;并對下述比賽提交代碼 kaggle泰坦里克號人員生還預測

【Docker】Docker Compose方式搭建分布式協調服務(Zookeeper)集群

開發分布式應用時,往往需要高度可靠的分布式協調,Apache ZooKeeper 致力于開發和維護開源服務器&#xff0c;以實現高度可靠的分布式協調。具體內容見zookeeper官網。現代應用往往使用云原生技術進行搭建,如何用Docker搭建Zookeeper集群,這里介紹使用Docker Compose方式搭建分布…

若依框架Consul微服務版本

1、最近使用若依前后端分離框架改造為Consul微服務版本 在這里分享出來供大家參考 # Consul微服務配置參數已經放置/bin/Consul微服務配置目錄 倉庫地址&#xff1a; gitee&#xff1a;https://gitee.com/zlxls/Ruoyi-Consul-Cloud.git gitcode&#xff1a;https://gitcode.c…

BOM知識點

BOM&#xff08;Browser Object Model&#xff09;即瀏覽器對象模型&#xff0c;是用于訪問和操作瀏覽器窗口的編程接口。以下是一些BOM的知識點總結&#xff1a; 核心對象 ? window&#xff1a;BOM的核心對象&#xff0c;代表瀏覽器窗口。它也是全局對象&#xff0c;所有全…

什么是遷移學習(Transfer Learning)?

什么是遷移學習&#xff08;Transfer Learning&#xff09;&#xff1f; 一句話概括 遷移學習研究如何把一個源領域&#xff08;source domain&#xff09;/源任務&#xff08;source task&#xff09;中獲得的知識遷移到目標領域&#xff08;target domain&#xff09;/目標任…

[創業之路-362]:企業戰略管理案例分析-3-戰略制定-華為使命、愿景、價值觀的演變過程

一、華為使命、愿景、價值觀的演變過程 1、創業初期&#xff08;1987 - 1994 年&#xff09;&#xff1a;生存導向&#xff0c;文化萌芽 使命愿景雛形&#xff1a;1994年華為提出“10年之后&#xff0c;世界通信行業三分天下&#xff0c;華為將占一份”的宏偉夢想&#xff0c…

Python黑魔法與底層原理揭秘:突破語言邊界的深度探索

Python黑魔法與底層原理揭秘&#xff1a;突破語言邊界的深度探索 開篇&#xff1a;超越表面的Python Python常被稱為"膠水語言"&#xff0c;但其真正的威力在于對底層的高度可控性。本文將揭示那些鮮為人知的Python黑魔法&#xff0c;帶你深入CPython實現層面&…