STM32 串列埠通訊

2021-10-06 12:52:54 字數 1895 閱讀 2008

1.uart是非同步序列全雙工通訊,一般採用ttl/cmos的邏輯電平標準表示資料

【+5v等價於邏輯"1",0v等價於邏輯"0",這樣的資料通訊及電平規定方式,被稱做ttl(電晶體-電晶體邏輯電平)訊號系統】

【cmos電平邏輯電平電壓接近於電源電壓,0 邏輯電平接近於 0v。而且具有很寬的雜訊容限】

2.資料格式

必須有1位起始位,8位資料位,停止位(電平可以保持1,2或1.5單位時間長度)

3.傳輸 波特率與位元率相同(使用nrz編碼)

位元率是每秒傳輸的二進位制位數。

波特率是每秒傳送的碼元數。

【如果在數字傳輸過程中,用0v表示數字0,5v表示數字1,那麼每個碼元有兩種狀態0和1. 每個碼元代表乙個二進位制數字。此時的每秒碼元數和每秒二進位制**數是一樣的,這叫兩相調製,波特率等於位元率。】

【如果在數字傳輸過程中,0v、2v、4v和6v分別表示00、01、10和11,那麼每個碼元有四種狀態00、01、10和11. 每個碼元代表兩個二進位制數字。此時的每秒碼元數是每秒二進位制**數是一半的,這叫四相調製,波特率等於位元率一半。】

1.我們看此圖的第二部分,可以知道資料暫存器dr是由tdr和rdr暫存器一起構成,寫資料到tdr然後轉移到傳送移位暫存器來一位位通過tx引腳傳送出去;rx引腳接收到資料先儲存在接受移位暫存器中然後轉移到rdr。

2.控制器 包括傳送器控制,接收器控制,喚醒單元,校驗控制和中斷控制。

1)傳送器控制

同樣我們看圖第三部分的下方有兩個暫存器分別為cr1和sr

(-1當一幀資料輸完且sr的txe為1,sr的tc由硬體置為1,若cr1的tcie=1,觸發中斷

(-2 cr1的txeie=1,且當tdr中的資料被硬體轉移到傳送移位暫存器,sr的txe被硬體置位,觸發中斷

2)接收器控制

(-1 cr1的rxneie=1,且當接收移位暫存器轉移到rdr,sr的rxne 由硬體置為1,觸發中斷

3.波特率發生器

usart_brr

uart 波特率=fck/(16*usartdiv)

fck是外設時鐘(pclk1用於usart2,3,4,5,時鐘**於apb1匯流排時鐘,最大頻率36mhz)(pclk2用於usart1,時鐘**於apb2匯流排時鐘,最大頻率72mhz)

1.中斷是主機與外設進行資料通訊的機制

異常也是中斷的一種,主要負責處理處理器內事件

2.中斷控制器nvic採用向量中斷的機制,中斷發生時,會自動取出對應的服務例程入口位址並直接呼叫,無需軟體判定中斷源

(nvic包括中斷的使能暫存器iser,中斷的除能暫存器icer,中斷的掛起暫存器ispr,中斷的掛起清除暫存器icpr,優先順序暫存器ip,活動狀態暫存器iabr

1.佇列與迴圈佇列

佇列是先入先出的線性表,只能在表的一端插入元素,另一端取出元素

當佇列容量為8圈成一圈,取兩個指標變數pque->front 排頭,pque->rear排尾,儲存元素時pque->rear順時針移動,取出元素時pque->front也順時針移動,與佇列類似只是在繞圈圈

2.迴圈佇列的queue模組函式有六個api函式

initqueue(初始化queue模組,設定頭指標尾指標,和佇列總容量,當前佇列元素數量),

clearqueue(清除佇列),

queueempty(判斷佇列是否為空),

queuelength(返回佇列元素個數),

enqueue(返回成功入隊的元素數量),

dequeue(返回成功出隊的元素數量)

3.printf

int

fputc

(int ch,file*f)

static

void

sendcharusedbyfputc

(u16 ch)

//等待傳送完畢

}

stm32串列埠通訊

通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...

STM32串列埠通訊

1.常用的串列埠相關暫存器 1 usart sr狀態暫存器,對應的庫函式 flagstatus usart getflagstatus usart typedef usartx,uint16 t usart flag 2 usart dr資料暫存器,對應的庫函式 void usart senddat...

STM32串列埠通訊

串列埠作為mcu最重要的外部介面,同時也是軟體開發重要的除錯手段,其重要性不言而喻。在這裡我們主要從庫函式的角度來講述如何設定串列埠,來達到最基本的通訊功能。串列埠的設定一般可以歸結為以下幾個步驟 1 串列埠時鐘使能,gpio時鐘使能。2 設定引腳復用器對映,呼叫gpio pinafconfig函式...