文章目錄
- 簡介
- 電平標準
- 串口參數及時序
- USART與UART
- 過程
- 引腳配置
簡介
- 點對點,只能兩設備通信
- 只需單向的數據傳輸時,可以只接一根通信線
- 當電平標準不一致時,需要加電平轉換芯片(一般從控制器出來的是信號是TTL電平)
- 地位先行
電平標準
TTL電平:+3.3V或+5V表示1,0V表示0
RS232電平:-3~-15V表示1,+3~+15V表示0
RS485電平:兩線壓差+2~+6V表示1,-2~-6V表示0(差分信號)
串口參數及時序
波特率:串口通信的速率
起始位:標志一個數據幀的開始,固定為低電平
數據位:數據幀的有效載荷,1為高電平,0為低電平,低位先行
校驗位:用于數據驗證,根據數據位計算得來(奇檢驗:包括檢驗位在內的9個數據的1是奇數個)
停止位:用于數據幀間隔,,固定為高電平,空閑時也為高電平,長度0.5,1,1.5,2常用1
字長:8位和9位,一般是8位無校驗和9位有校驗
- 無檢驗
- 有校驗
USART與UART
USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/異步收發器
UART是異步
串口一般很少用同步功能
過程
- 發送:先到發送數據寄存器(TDR),再到發送移位寄存器,把一個字節的數據一位一位地向右移出去(低位先行)
- 當發送時,數據先在TDR,檢測發送移位寄存器是否非空,空則將數據移動到發送移位寄存器,再置標志位TXE(TX Empty),發送寄存器空,若該標志位置1(數據還沒發送出去,只是在發送移位寄存器中),就可以向TDR寫入下一個數據了
- 接收:先到接收移位寄存器,把發過來的位一位一位接收,再到接收數據寄存器(RDR)
- 過程與上面類似,RDR有數據置標志位RXNE,置1就可以把數據讀走
引腳配置
- TX引腳:復用推挽
- RX:浮空或上拉輸入