STM32F207串列埠實驗記錄

fhzmWJ發表於2020-12-07

處理器與外部裝置通訊的兩種方式:

  • 並行通訊
    傳輸原理:資料的各個位同時傳輸
    優點:速度快
    缺點:佔用引腳資源多

  • 序列通訊
    傳輸原理:資料按位順序傳輸
    優點:佔用引腳資源少
    缺點:速度相對較慢

序列通訊:
按照資料傳送方向分為

  • 單工
  • 半雙工
  • 全雙工

序列通訊的通訊方式:

  • 同步通訊
    帶時鐘同步訊號傳輸
    SPI,IIC通訊介面
  • 非同步通訊
    不帶時鐘同步訊號
    UART(使用非同步收發器),單匯流排

常見的序列通訊介面:

通訊標準引腳說明通訊方式通訊方向
USRT(通用非同步收發器)TXD:傳送端 、 RXD:接收端、GND:公共地非同步通訊全雙工
單匯流排(1-wire)DQ:傳送/接收端非同步通訊半雙工
SPISCK:同步時鐘、MISO:主機輸入,從機輸出、MOSI:主機輸出、從機輸入同步通訊全雙工
I2CSCL:同步時鐘、SDA:資料輸入/輸出端同步通訊半雙工

串列埠應該就是序列通訊介面
STM32的串列埠通訊介面:
UART:同步非同步收發器
USART:通用同步非同步收發器
不過207的手冊只找到了USART和I2C介面


UART/USART非同步通訊方式引腳連線方式:

  • RXD :資料輸入引腳。資料接受。
  • TXD :資料傳送引腳。資料傳送。

    假如晶片1、2的串列埠都是TTL電平的,GND要先共地,傳送連線到接收。

電腦上的串列埠叫DB9,就是下圖這樣的:

假如將晶片和PC連線,DB9實際上是進行了一個電平轉換,經過電平轉換轉換成DB9這種9針的介面,STM32的晶片也需要RS232轉換器,轉成232電平,這樣才能連在一起。而不能直接將晶片的TTL直接連到電腦的DB9收發引腳,電平是不相容的。


UART/USART非同步通訊特點:

  • 全雙工非同步通訊
  • 分數波特率發生器系統、提供精確的波特率
  • 可程式設計的資料字長度(8位或者9位)
  • 可配置的停止位(支援1或者2位停止位)
  • 可配置的使用DMA多緩衝器通訊
  • 單獨的傳送器和接收器使能位
  • 檢測標誌:接收緩衝器、傳送緩衝器空、傳輸結束標誌
  • 多個帶標誌的中斷源。觸發中斷
  • 其他:校驗控制,四個錯誤檢測標誌

串列埠通訊的過程:
接收–>
外部裝置一個位元一個位元地傳資料到RXD接收引腳,傳輸速度由波特率決定的,然後傳到序列輸入移位暫存器,傳輸完成後,一次性地將資料輸入到資料快取器,然後MCU核心就可以讀取這個資料。
傳送–>
MCU核心把要發的資料寫到輸出資料緩衝器,然後這個暫存器會一次把所有資料傳給序列輸出移位暫存器,然後把資料一位一位地按照定好的波特率傳輸給外部裝置,通過TXD引腳。

串列埠非同步通訊需要定義的引數
起始位
資料位(8或者9位)
奇偶校驗位(第9位)
停止位(1,15,2位)
波特率設定









補充
什麼是TTL電平、CMOS電平、RS232電平?它們有什麼區別呢?一般說來,CMOS電平比TTL電平有著更高的噪聲容限。

1、TTL電平標準

輸出 L: <0.8V ; H:>2.4V。

輸入 L: <1.2V ; H:>2.0V

TTL器件輸出低電平要小於0.8V,高電平要大於2.4V。輸入,低於1.2V就認為是0,高於2.0就認為是1。於是TTL電平的輸入低電平的噪聲容限就只有(0.8-0)/2=0.4V,高電平的噪聲容限為(5-2.4)/2=1.3V。

2、CMOS電平標準

輸出 L: <0.1Vcc ; H:>0.9Vcc。

輸入 L: <0.3Vcc ; H:>0.7Vcc.

由於CMOS電源採用12V,則輸入低於3.6V為低電平,噪聲容限為1.8V,高於3.5V為高電平,噪聲容限高為1.8V。比TTL有更高的噪聲容限。

3、RS232標準

邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,注意電平的定義反相了一次。

相關文章