一、串口外設的基本概述
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博客)