串口在學校就是寫過的,最近又重新寫了一下,其實很簡單,只是一個時序而已,在這里記下來,做個小總結,怕忘記了再查的話麻煩:
接收:接收時序是當檢測 到RX引腳有下降沿產生時,即認為線路有數據傳輸,下降沿是接收數據的起始位,然后是8位的數據位,最后一個高電平表示結束位(或終止位),數據接收過程,按從低位到高位的次序依次接收。
發送:其過程與接收時序一樣。
空閑狀態:空閑狀態處於高電平。
數據傳輸順序:數據傳輸是先傳輸LSB,最后傳輸傳輸MSB.
波特率:單位時間內載波變化的次數。
仿真過程中,當連續有數據傳輸時,可以看到發送完一位終止位后,緊跟着就是一下個起始位。
以下摘自http://www.21ic.com/jichuzhishi/datasheet/RS232/ziliao/701059.html
Uart串口與RS232串口的區別
Uart這里指的是TTL電平的串口;RS232指的是RS232電平的串口。
TTL電平是3.3V的,而RS232是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平。
Uart串口的RXD、TXD等一般直接與處理器芯片的引腳相連,而RS232串口的RXD、TXD等一般需要經過電平轉換(通常由Max232等芯片進行電平轉換)才能接到處理器芯片的引腳上,否則這么高的電壓很可能會把芯片燒壞。
我們平時所用的電腦的串口就是RS232的,當我們在做電路工作時,應該注意下外設的串口是Uart類型的還是RS232類型的,如果不匹配,應當找個轉換線(通常這根轉換線內有塊類似於Max232的芯片做電平轉換工作的),可不能盲目地將兩串口相連。
另外再補充其他一點,在自己做串口線時,一般按照下面的規則制作:
PC 對應 外設(例如某開發板)
GND ------- GND
RXD ------- TXD
TXD ------- RXD
CTS ------- RTS
RTS ------- CTS
通常是按照以上交叉一次就可以了,但如果開發板上的串口的RXD是與板上的CPU的TXD相連的,其他也類似的話,即說明已交叉了一次了,那么我們在制作串口線時就不需要按照以上的對應關系做了,而是RXD對應RXD,TXD對應TXD,其他也一樣。