STM32串口通信基礎知識科普_第1頁
STM32串口通信基礎知識科普_第2頁
STM32串口通信基礎知識科普_第3頁
STM32串口通信基礎知識科普_第4頁
STM32串口通信基礎知識科普_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

STM32串口通信基礎知識科普STM32串口通信基礎知識科普設備之間通信的方式一般情況下,設備之間的通信方式可以分成并行通信和串行通信兩種。并行與串行通信的區別如下表所示。串行通信的分類1、按照數據傳送方向,分為:單工:數據傳輸只支持數據在一個方向上傳輸;接收端和發送端,兩者可以合并一起使用一個端口。全雙工:允許數據同時在兩個方向上傳輸。因此,全雙工通信是兩個單工通信方式的結合,需要獨立的接收端和發送端。2、按照通信方式,分為:同步通信:帶時鐘同步信號傳輸。比如: SPI,IIC通信接口。異步通信:不帶時鐘同步信號。比如: UART(通用異步收發器),單總線在同步通訊中,收發設備上方會使用一根 信號線傳輸信號,在時鐘信號的驅動下雙方進行協調,同步數據。例如,通訊中通常雙方會統一規定在時鐘信號的上升沿或者下降沿對數據線進行采樣。在異步通訊中不使用時鐘信號進行數據同步,它們直接在數據信號中穿插一些用于同步的信號位,或者將主題數據進行打包,以數據幀的格式傳輸數據。通訊中還需要雙方規約好數據的傳輸速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。在同步通訊中,數據信號所傳輸的內容絕大部分是有效數據,而異步通訊中會則會包含數據幀的各種標識符,所以同步通訊效率高,但是同步通訊雙方的時鐘允許誤差小,稍稍時鐘出錯就可能導致數據錯亂,異步通訊雙方的時鐘允許誤差較大。常見的串行通信接口STM32串口通信基礎STM32的串口通信接口有兩種,分別是:UART(通用異步收發器)、USART(通用同步異步收發器)。而對于大容量STM32F10x系列芯片,分別有3USART和2UARTUART引腳連接方法RXD:數據輸入引腳,數據接受;TXD:數據發送引腳,數據發送。對于兩個芯片之間的連接,兩個芯片GND共地,同時TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個芯片之間就可以進行TTL電平通信了。STM32與51單片機串口通信相關實例,請移步此處:STM32與51單片機串口通信實例。若是芯片與PC機(或上位機)相連,除了共地之外,就不能這樣直接交叉連接了。盡管PC機和芯片都有TXD和RXD引腳,但是通常PC機(或上位機)通常使用的都是RS232接口(通常為DB9封裝),因此不能直接交叉連接。RS232接口是9針(或引腳),通常是TxD和RxD經過電平轉換得到的。故,要想使得芯片與PC機的RS232接口直接通信,需要也將芯片的輸入輸出端口也電平轉換成RS232類型,再交叉連接。經過電平轉換后,芯片串口和 RS232的電平標準是不一樣的單片機的電平標準(TTL電平):+5V表示1,0V表示0;RS232的電平標準:+15/+13V 表示0,-15/-13表示1。RS-232通訊協議標準串口的設備間通訊結構圖如下:所以單片機串口與PC串口通信就應該遵循下面的連接方式:在單片機串口與上位機給出的 RS232口之間,通過電平轉換電路(如下面圖中的Max232芯片)實現TTL電平與RS232電平之間的轉換。STM32與PC之間通信實例,請移步此處:STM32實例-用按鍵控制串口發送數據,文末附代碼。RS232串口簡介臺式機電腦后面的9針接口就是com口(串口)在工業控制數據采集上應用廣泛上圖中,最右邊的是串口接口統稱為RS232接口,是常見的DB9封裝。通信過程中只有兩個腳參與通信。2腳:電腦的輸入RXD3腳:電腦的輸出TXD通過2,3腳就可以實現全雙工(可同時收發)的串行異步通信5腳:接地單片機的P3口是有兩個復用接口RXD和TXDTDXRDX上。注意:單片機RS232的電平標準是不一樣的。單片機的電平標準TTL電平:+5V表示10V表示0。RS232的電平標準+15/+13V 表示1-15/-13 表示0。所以單片機與電腦串口通信就應該遵循下面的連接方式:在單片機與上位機給出的 RS232口之間通過電平轉換電路(最上面圖中的Max232芯片)實現TTL電平與RS232電平之間的轉換,PC串口與單片機串口連接方式圖:注意這兩個DB9:DB91是在電腦上的DB92是在單片機實驗板上焊接著的。這里的交叉連接的意思是 DB91的RXD連著DB92的TXD。DB92的RXD連著DB91的TXD這樣交叉著連接,如果電腦沒有RS232口只有USB口,可以用串口轉接線轉出串口,如下圖所示。這個時候在電腦上位機上需要安裝串口驅動程序。注意,這個驅動程序驅動的是 PL2303芯片(在上圖的大頭里面)使RS232信息轉換成USB信息。下圖為上圖的內部結構:用串口通信比USB簡單,因為串口通信沒有協議,使用方便簡單。STM32的UART特點全雙工異步通信;分數波特率發生器系統,提供精確的波特率。發送和接受共用的可編程波特率,最高可達4.5Mbits/s;可編程的數據字長度(8位或者9位);可配置的停止位(支持 1或者2位停止位可配置的使用DMA多緩沖器通信;單獨的發送器和接收器使能位;檢測標志:①接受緩沖器②發送緩沖器空③傳輸結束標志;多個帶標志的中斷源,觸發中斷;其他:校驗控制,四個錯誤檢測標志。串口通信過程STM32中UART參數串口通訊的數據包由發送設備通過自身的 TXD接口傳輸到接收設備RXD接口,通訊雙方的數據包格式要規約一致才能正常收發數據。STM32中串口異步通信需要定義的參數:起始位、數據位( 8位或者位)、奇偶校驗位(第 9位)、停止位(1,15,2位)、波特率設置。UART串口通信的數據包以幀為單位,常用的幀結構為: 1位起始位位數據位+1位奇偶校驗位(可選)+1位停止位。如下圖所示:奇偶校驗位分為奇校驗和偶校驗兩種,是一種簡單的數據誤碼校驗方法。奇校驗是指每幀數據中,包括數據位和奇偶校驗位的全部 9個位中1的個必須為奇數;偶校驗是指每幀數據中,包括數據位和奇偶校驗位的全部 9個位中1的個數必須為偶數。校驗方法除了奇校驗(odd)、偶校驗(even)之外,還可以有:0校驗(space)、1校驗(mark)以及無校驗(noparity)。0/1校驗:不管有效數據中的內容是什么,校驗位總為 0或者1。UART(USART)框圖這個框圖分成上、中、下三個部分。本文大概地講述一下各個部分的內容,具體的可以看《STM32中文參考手冊》中的描述。框圖的上部分,數據從 RX進入到接收移位寄存器,后進入到接收數據寄存器,最終供CPU或者DMA來進行讀取;數據從 CPU或者DMA傳過來,進入發送數據寄存器,后進入發送移位寄存器,最終通過 TX發送出去。然而,UART的發送和接收都需要波特率來進行控制的,波特率是怎樣控制的呢?這就到了框圖的下部分,在接收移位寄存器、發送移位寄存器都還有一個進入的箭頭,分別連接到接收器控制、發送器控制。而這兩

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論