STM32串列埠通訊筆記

2021-10-04 16:07:32 字數 1160 閱讀 2858

1:串列埠使能:對於任何裝置首先都是使能

2:波特率設定:暫存器

3:串列埠控制: 暫存器

4:資料傳送與接收:暫存器

5:串列埠狀態: 暫存器

//操作流程:首先是基礎設定,然後通過控制器選擇控制;緊接著通過檢查狀態來對資料暫存器進行讀寫操作。

//---------------------------------------

基礎設定:波特率設定(兩個引數)

引數1:串列埠對應的時鐘頻率 pclk

引數2:需要設定的波特率 bound 比如:9600

如何計算設定呢?

對於over8:過取樣模式

0:16倍過取樣

1:8倍過取樣

對於公式2,是由於8倍取樣在智慧卡,irda和lin模式下不可用,所以才有公式2

計算例項:

float temp;

unsigned short integer;//整數部分

unsigned short decimal;//小數部分

//得到所需要設定的波特率的值,代入公式

temp=(float)(pclk1000000)/(16bound)

//其中over8=0,使用16過取樣

integer = temp;//得到整數部分

decimal = (temp-integer)*16;//*16就是左移4位

///高低位整合

integer <<=4;

integer +=decimal;

///---------------------

usartn->brr=integer;//設定波特率ok

第2部分就是對控制器開啟相應的控制位

首先:usartn->cr1&=~(1<<15);//設定over8=0

不同模式

//傳送模式

usartn->cr1 |=1<<3; //傳送使能

//接收模式

usartn->cr1 |=1<<2; //接收使能

///然後串列埠使能

usartn->cr1 |=1<<13;//串列埠使能

使用時,就是對sr暫存器相應位檢查來對dr暫存器操作

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函式...