usart學習筆記

2021-09-30 12:52:00 字數 1307 閱讀 9825

usart通用同步/非同步序列收發器。相對於普通uart而言它的功能更加強大。在stm32中整合了usart控制器,它不僅支援普通的非同步序列通訊(uart功能)同時還具有lan匯流排功能(局域網際網路功能)、irda(紅外通訊)和smartcard(智慧卡)功能。

非同步通訊資料格式:起始位,資料位(最低為5位最高為9位),奇偶校驗位 ,停止位

一般情況下,串列埠通訊所採用的晶元為max3232晶元,作為收發的gpio管腳通過此晶元連線到串列埠介面db9的針腳上,其中gpio_tx接第三針腳,gpio_rx接db9的第2針腳。

這樣的接線方式和pc機的串列埠接線方式相同。因此如果將stm32開發板與pc機的串列埠相連。需要使用交叉線。還有一種接線方式為gpio_tx接第二針腳,gpio_rx接第三針腳。這樣在和pc的串列埠進行通訊的時候就必須接直通串列埠線。

以上是stm32串列埠的硬體介面,從圖上可以看出stm32的usart非常複雜,可以大致分為三個部分:波特率控制部分、收發控制部分、資料儲存和轉移部分。

1.波特率的控制:

波特率的控制是通過串列埠時鐘源來控制的。通過控制改變串列埠時鐘源就能夠改變相應的波特率。因此這裡設定了usart_brr暫存器,該暫存器的功能就是用來設定串列埠時鐘頻率的分頻值(usartdiv),它有兩部分組成分別為整數部分div_mantissa和小數部分div_franction。usartdiv = div_mantissa+(div_fraction/16)。

在stm32系列微控制器中usart1掛接在apb2上,因此它的時鐘源為fpclk2。usart2掛接在apb1上,它的時鐘源為fpclk1。串列埠時鐘源通過usartdiv分頻後分別輸出作為傳送器時鐘和收發器時鐘。控制傳送和接收的時序。

2.收發控制

收發控制部分是串列埠模組的重要的組成部分,包括3個控制暫存器分別為cr1, cr2 , cr3和乙個狀態暫存器sr。通過寫控制引數到這三個控制暫存器可以改變串列埠的一些模式設定,例如,停止位,奇偶校驗位,資料字長等一些重要通訊引數。串列埠的一些狀態則可以通過sr暫存器獲取到。

3.資料儲存和轉移部分:

這部分包括資料暫存器tdr/rdr和移位暫存器。通過對收發控制部分的配置,這部分則按照配置好的引數進行工作。

資料傳送:當有資料需要傳送,核心或者dma將記憶體中的資料寫入到tdr暫存器,傳送控制器將適時的將資料載入的移位暫存器中,當資料完全載入到移位暫存器時,然後通過串列埠線_tx將資料一位一位的傳送出去。在資料從tdr轉移到移位暫存器中時,會產生乙個事件叫做txe(資料暫存器已空事件)。當資料傳送完畢的時候會產生傳送完成事件tc。

資料接收:接收資料為傳送資料的逆過程,資料一位一位的接收到移位暫存器中,在載入到rdr暫存器。然後通過核心或者dma拷貝到記憶體。**用程式使用。

學習筆記一 USART 485

1 485 一般稱作 rs485 eia 485 是隸屬於 osi 模型物理層的電氣特性規定為 2線,半雙工多點通訊的標準。它電氣特性和 多點通訊的標準。它電氣特性和 rs 232 大不一樣。用纜線兩端的電壓差值來表示傳遞訊號大不一樣。用纜線兩端的電壓差值來表示傳遞訊號大不一樣。用纜線兩端的電壓差值...

STM32學習筆記 USART

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

STM32f1學習筆記 USART

typedef struct usart inittypedef usart stopbits usart stopbits引數 描述usart stopbits 1 在幀尾傳輸1個停止位 usart stopbits 0.5 在幀尾傳輸0.5個停止位 usart stopbits 2 在幀尾傳輸2...