運動控制器20:STM32的SPI模塊

SPI簡介

  1. 大容量的SPI接口支持I2S,默認為SPI
  2. 全雙工,半雙工,同步和串行通信四種方式
  3. 主模式為從設備提供時鐘

SPI主要特點

  1. 3線全雙工
  2. 2線單工
  3. 8位和16位幀格式
  4. 主模式OR從模式
  5. 預分頻
  6. 可編程時鐘極性和相位
  7. 可編程數據順序
  8. 發送和接收的中斷,忙狀態
  9. 硬件CRC
  10. 故障,過載和CRC錯誤標志
  11. 支持DMA,單字節收發緩沖,并產生中斷

SPI的功能描述

概述

  1. 引腳,4PIN,MI,MO,SCK,NSS,NSS為輸出時,片選,做輸入時,如果拉低,則強制主模式進入從狀態,該引腳可不用。
  2. 兩種模式:
    • 軟件NSS模式,引腳作為它用,要設置引腳時可以寫寄存器。
    • 硬件NSS模式,使能后拉低NSS,其他設備進入從模式。如果不能拉低,表示總線忙,返回失效。
  3. 時鐘信號的相位和極性CPOL和CPHA
    • CPOL,閑置時時鐘電平。
    • CPHA,1:第二個邊沿進行采樣。0:第一個邊沿采樣。

配置為從模式

配置為主模式

  1. 設置波特率
  2. 設置極性和相位
  3. 數據格式為8位還是16位
  4. 設置高位還是低位在前
  5. 設置NSS引腳
  6. 設置主從和使能


    1.png

上面為串行12864的通信時序,CPOL=1,CPHA=1,我們可以設置為雙線單工通信。

配置為單工通信

  1. 單工有兩種,1時鐘+1雙向線或者1時鐘+1單向
  2. 只發送時只用到SCK和MO引腳,不需要處理接收緩沖

發送和接收過程

主模式下,有四種方式:

  1. 全雙工
  2. 單向只接收
  3. 雙向模式時,發送時不接受
  4. 只接收不發送

主模式全雙工流程如下:單向只發送同這種模式

  1. 使能SPI模塊
  2. 寫入發送的數據
  3. 等待TXE=1,發送完畢,如果要接收,等待RXNE=1,然后讀出
  4. 發送完畢后,檢查BSY=0后關閉SPI

雙面液晶的通信流程如下:

  1. 使能
  2. 寫入要發送的數據
  3. 等待發送完,讀取TXE
  4. 寫入第二個……,讀取TXE
  5. 讀BSY=0后,關閉

CRC計算

  1. CRC計算可選擇需要的多項式
  2. 使能以后,將在通信的最后,自動再發送CRC
  3. 接收的時候可以再計算一遍,然后和接收到的CRC進行對比

狀態標志

  1. 發送完成 TXE
  2. 接收完成 RXNE
  3. 忙 BSY

關閉SPI

主模式全雙工通信時,等待發送完最后一個數據TXE=1后,讀BSY=0后,關閉SPI

利用DMA

TXE=1時觸發DMA,DMA將數據寫入DR后清除TXE,如果只發送,則只使能DMA發送通道

中斷

可設置TXE和RXNE中斷

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • SPI通信實驗 SPI簡介 串行外設接口(Serial Peripheral Interface Bus,SPI)...
    btskyrmb閱讀 9,638評論 1 12
  • 1、嵌入式系統的定義 (1)定義:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本...
    榮卓然閱讀 1,858評論 0 5
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo閱讀 3,763評論 1 20
  • 產品描述 工作頻段 **CC1100: **400-464 MHz and 800-928MHzCC1101: 3...
    Alex_Lin閱讀 4,730評論 1 0
  • 生活無聊的時候偶爾也會去書店逛逛,希望可以找到一本值得閱讀的書充實一下自己的生活。這是我總會花半天的時間在書店里搜...
    柒小舟閱讀 208評論 0 0