STM32F1串口通信總結

1、處理器與外部設備通信的兩種方式:

1.並行通信    -傳輸原理:數據各個位同時傳輸。    -優點:速度快。    -缺點:佔用引腳資源多。

2.串行通信    -傳輸原理:數據按位順序傳輸。       -優點:佔用引腳資源少。    -缺點:速度相對較慢。

2、串行通信按照數據傳送方向,分爲:

1.單工:數據傳輸只支持數據在一個方向上傳輸 。

2.半雙工:允許數據在兩個方向上傳輸,但是在某一時刻,只允許數據在一個方向上傳輸,它實際上是一種切換方向的單工通信;

3.全雙工:允許數據同時在兩個方向上傳輸,因此全雙工通信是兩個單工通信方式的結合,它要求發送設備和接收設備都有獨立的接收和發送能力。

                  

3、串行通信的通信方式 :

1.同步通信:帶時鐘同步信號傳輸,根據時鐘信號傳輸。     -SPI,IIC通信接口

2.異步通信:不帶時鐘同步信號,需規定波特率來通信。     -UART(通用異步收發器),單總線

通信標準

引腳說明

通信方式

通信方向

  UART

(通用異步收發器)

TXD:發送端

RXD:接受端

GND:公共地

異步通信

全雙工

  單總線

(1-wire)

DQ:發送/接受端

異步通信

半雙工

SPI

SCK:同步時鐘

MISO:主機輸入,從機輸出

MOSI:主機輸出,從機輸入

同步通信

全雙工

I2C

SCL:同步時鐘

SDA:數據輸入/輸出端

同步通信

半雙工

4、STM32的串口通信接口 :

1.UART:通用異步收發器

UART異步通信方式特點:

  1. 全雙工異步通信。
  2. 分數波特率發生器系統,提供精確的波特率。-發送和接受共用的可編程波特率,最高可達4.5Mbits/s 可編程的數據字長度(8位或者9位);
  3. 可配置的停止位(支持1或者2位停止位);
  4. 可配置的使用DMA多緩衝器通信。
  5. 單獨的發送器和接收器使能位。
  6. 檢測標誌:① 接受緩衝器  ②發送緩衝器空 ③傳輸結束標誌 多個帶標誌的中斷源。
  7. 觸發中斷。 其他:校驗控制,四個錯誤檢測標誌。

2.USART:通用同步異步收發器

5、UART異步通信方式引腳連接方法:

-RXD:數據輸入引腳。數據接受。 -TXD:數據發送引腳。數據發送。

         

串口號

RXD

TXD

1

PA10

PA9

2

PA3

PA2

3

PB11

PB10

4

PC11

PC10

5

PD2

PC12

6、串口通信過程:          

7、STM32串口異步通信需要定義的參數:

起始位  數據位(8位或者9位)  奇偶校驗位(第9位)  停止位(1,15,2位)  波特率設置

8、USATR框圖:                             

9、常用的串口相關寄存器:

1.USART_SR狀態寄存器

2.USART_DR數據寄存器

3.USART_BRR波特率寄存器

波特率計算方法:

10、串口配置的一般步驟:

  1. 串口時鐘使能,GPIO時鐘使能:RCC_APB2PeriphClockCmd();

  2. 串口復位:USART_DeInit(); 這一步不是必須的

  3. GPIO端口模式設置:GPIO_Init(); 模式設置爲GPIO_Mode_AF_PP

  4. 串口參數初始化:USART_Init();

  5. 開啓中斷並且初始化NVIC(如果需要開啓中斷才需要這個步驟)    NVIC_Init();       USART_ITConfig();

  6. 使能串口:USART_Cmd();

  7. 編寫中斷處理函數:USARTx_IRQHandler();

  8. 串口數據收發: void USART_SendData();//發送數據到串口,DR uint16_t USART_ReceiveData();//接受數據,從DR讀取接受到的數據

  9. 串口傳輸狀態獲取: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);