1. 程式人生 > >STM32F103C8T6學習筆記_串列埠USART的使用

STM32F103C8T6學習筆記_串列埠USART的使用

1、     M  bps                 兆   位元每秒                   Million     bits per second      (形容傳輸速率)

    波特率(BaudRate)(bound )          單位 Bd    (形容傳輸速率時  Bd/s)

如果是二進位制的話 , 都表示單位時間內傳輸的二進位制數

2、波特率計算公式

baud=串列埠時鐘(APB1 or APB1)   /   USART_BRR暫存器的值

Example    時鐘108M (108000000  六個0)              baud=115200MHz        則得暫存器值938    (0XA3AA)

3、 GPIO的複用

TXD    Transmit(tx)  Data    傳送資料

RXD    Receive(rx)  Data     接受資料

USART1_TX    PA.9    設定成複用推輓輸出      GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

USART1_RX    PA.10  設定成浮空輸入             GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

4、單工                           單向      一方傳送資訊到另一方

      全雙工    同一時間    雙向      傳送資料 同時也可以接受資料

      半雙工                      雙向       傳送   或者   接受

USART_InitStructure.USART_Mode=USART_Mode_Rx | USART_Mode_Tx     //設定成半雙工模式

5、奇偶校驗   parity

00000000(8位)+0 or 1(1位)   奇校驗 就在(1位)這裡寫1 或者 寫0   使得1的總個數為奇數

........................................................偶校驗....................................................使得1的總個數為偶數

傳送端傳送一個字元編碼(9位)【偶數】==接收端接收到的編碼(9位) 【偶數】   檢驗成功

奇校驗同理; 

6、資料位    8   7   6    5     WordLength

例如資料位設定為5.那麼就相當於規定了每個傳輸位元組只能由5個二進位制來表示,例如   11111、10110 、01110等。也就是說只能傳送00000—11111這個範圍內的數。

7、停止位    1   1.5    2        StopBits

 停止位表示傳輸結束(也可以校正  發  收   兩端的時鐘  達到同步的目的)    停止位越多,不同時鐘同步的容忍程度越大    資料傳輸速度慢

 8、一般無硬體資料流控制(很少用)  HwFlowCtl

    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl None;      //無硬體資料流控制

9、oversampling 取樣過密     sampling 取樣