STM32-USART串口協議
USART串口協議
?通信的目的:將一個設備的數據傳送到另一個設備,擴展硬件系統
?通信協議:制定通信的規則,通信雙方按照協議規則進行數據收發
就是我們并不能在芯片上設計完全部的一下子完成所有的設計,我們總需要一些外設 所以需要學會通信接口 掌握通信協議來溝通 STM32芯片與其他外設
就像是你要去作弊 你和好朋友會約定一個口號比如說咳嗽為信號 這就是通信 另外 你們相約1根手指為A 2根手指為B 3根手指為C 等等 這就是通信的規則 也叫通信協議
對于第一種USART 它有兩種引腳 TX RX TX是發送端 RX是接收端 有的地方也叫TXD RXD 這兩種其實是同一種東西
全雙工指的是通信雙方可以同時相互傳遞信息 只有一根數據線叫半雙工 或者說不能叫只有一根數據線 因為可能兩根數據線組合成一種大的數據線
在我們這里判斷時序的變化 因為 I2C 和 SPI有單獨的時鐘線 所以是對于它們兩者來說時鐘是同步的
單端信號引腳的高低電平都是對GND的電壓差 所以準確的來說 前三個情況下 其實都要加一個GND 沒有GND 是無法實現通信的
而下面兩個是靠差分信號的電壓差來控制電平的 所以并不需要加GND 而USB在使用中有些時候還是需要添加GND的 使用差分信號 可以極大的提高信號的抗干擾能力
而最后一列的設備選項是這樣的 點對點指的是 從一個設備到另一個設備點對點的傳輸 而 多設備指的是 舉個例子 就像是在教室里 老師給一群學術講課
串口通信
?串口是一種應用十分廣泛的通訊接口,串口成本低、容易使用、通信線路簡單,可實現兩個設備的互相通信
?單片機的串口可以使單片機與單片機、單片機與電腦、單片機與各式各樣的模塊互相通信,極大地擴展了單片機的應用范圍,增強了單片機系統的硬件實力
USART 串口通信選取的各個引腳
電平標準是數據1和數據0的表達方式,是傳輸線纜中人為規定的電壓與數據的對應關系,串口常用的電平標準有如下三種:
TTL電平:+3.3V或+5V表示1,0V表示0
RS232電平:-3-15V表示1,+3+15V表示0
RS485電平:兩線壓差+2+6V表示1,-2-6V表示0(差分信號)
一般來說整個數據幀中會有2種情況 一種是數據幀一共有10位 還有一種數據幀有11位 其中區別就在于是否在數據位第八位后添加一個奇偶校驗位
串口的主要參數需要注意的
?波特率:串口通信的速率
?起始位:標志一個數據幀的開始,固定為低電平
?數據位:數據幀的有效載荷,1為高電平,0為低電平,低位先行
?校驗位:用于數據驗證,根據數據位計算得來
?停止位:用于數據幀間隔,固定為高電平
始位是這樣得來的,就是我們把空閑狀態全部視為高電平1 而后的起始位必須是低電平0 用來打破這種高電平的壟斷
停止位: 也是如此 ,必須固定是高電平 1 用來表示真正的結束