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