STM32之USART的基本知識點

2021-07-23 11:57:00 字數 1109 閱讀 3388

usart又稱為通用同步非同步收發器,是利用分數位元率發生器提供寬範圍的位元率選擇。stm32f10x系列的晶元都提供了功能比較強大的usart串列埠,基本上的串列埠功能都可以通過硬體來實現。

usart具有以下比較典型的特徵:

1.全雙工非同步通訊;

2.單線半雙工通訊;

3.傳送方為同步傳輸提供時鐘;

4.可配置的使用dma的多緩衝器通訊—在sram中利用集中式dma緩衝接受/傳送;

5.單獨的接收器和傳送器使能端;

6.檢測標誌,接受緩衝器滿,傳送緩衝器空,傳輸結束標誌;

7.4個錯誤檢測標誌:溢位錯誤,噪音錯誤,幀錯誤,檢驗錯誤;

8.10帶標誌的中斷源等。

任何usart雙向通訊都至少需要兩個腳:接受資料輸入(rx)和傳送資料輸出(tx)。

在非同步模式下,匯流排在傳送和接受前應該處於空閒狀態。

在同步模式下需要用到sclk引腳:傳送器時鐘輸出。此引腳輸出用於同步傳輸的時鐘(在start和stop位上沒有時鐘,軟體可選,可以在最後乙個資料位送出乙個時鐘脈衝)。時鐘相位和極性都是軟體可程式設計的。

傳送器中,傳送器會根據m位的狀態傳送8位或9位的資料字。當傳送使能位(te)被設定時,使能usart同步串列埠,這時傳送移位肌暫存器中的資料在tx引腳上輸出,相應的時鐘脈衝在sclk引腳輸出。字元傳送在tx引腳上首先移除資料的最低有效位,每個字元之間都有乙個低電平的起始位,之後是停止位,其數目是可配置的。

tips:在資料傳輸期間不能復位te位,否則將破壞tx引腳上的資料,因為位元率計數器停止計數,正在傳輸的當前資料將會丟失,te位被啟用後將傳送乙個空閒位。

在單位元組通訊過程中,先讀usart_sr暫存器,再寫usart_dr暫存器,可以完成對tc位的清0.同時tc位也可以通過對tc位軟體寫0來清除,此清0方式只在多緩衝器通訊模式下推薦實用。

設定sbk可以傳送乙個斷開符號。斷開幀長度取決於m位,如果設定sbk=1,在完成當前資料傳送後,將在tx線上傳送乙個斷開符號。斷開**傳送完成時(在斷開符號的停止位時),sbk被硬體復位。usart在最後乙個斷開幀的結束處插入邏輯1,保證能識別下一幀的起始位。

tips:如果在開始傳送斷開幀之前軟體又復位了sbk位,斷開符號將不被傳送。如果要傳送兩個聯絡的斷開幀,sbk位應該在前乙個斷開符號的停止位之後置起。

STM32學習之USART串列埠

通用同步非同步收發器 usart 支援lin 區域性互連網 智慧卡協議和irda 紅外資料組織 sir endec規範,以及數據機 cts rts 操作 允許多處理器通訊 使用多緩衝器配置的dma方式,可以實現高速資料通訊。stm32f107有5個usart。usart暫存器 狀態暫存器 usart...

STM32詳細配置 USART

前言 串列埠對於處理器來說算是一種標配,也是在軟體開發中必不可少的,那就是使用串列埠來除錯資訊 列印出相應的資訊 stm32f0系列的晶元,串列埠根據型號不同,數量也不同,從1個到8個不等。今天主要總結串列埠簡單且常用的功能,傳送字元和 中斷接收字元。今天提供的串列埠傳送功能將在後面的各個模組總結中...

STM32學習筆記 USART

參考 include stm32f10x.h 配置nvic void nvic config void 配置串列埠,因為串列埠與gpio復用,所以也要配置gpio void usart config void 傳送乙個byte void usart sendbyte usart typedef us...