1. 程式人生 > >關於 STM32 SPI 從機模式的問題

關於 STM32 SPI 從機模式的問題

你再尋找 關於SPI 作為從機時  而且還沒有NSS 訊號    而出現數據接收錯誤的煩惱吧

最近給客戶做一個專案 使用到了SPI 從機     在網上找答案  但是沒有找到自己滿意的  現在來說  都沒有 將SPI 通訊接收錯誤的根本原因說明白

網上有很多關於STM32  作為從機來使用 的 問題  主要還是 從機接收資料錯誤

1  關於主從機的 時鐘懸空配置     可以肯定的說 主機與從機的時鐘懸空一定要配成一樣的 

這點STM 的官方手冊說的很明白

2 從機的波特率 只與 主機提供的 CLK 訊號有關

3 通訊失敗  或者 資料接收錯誤 問題就出在從機對SPI 的起始訊號的判斷上面

當使用TI 模式  NSS 訊號由硬體  從機對資料的捕獲 就很容易 

若沒有NSS 訊號呢    因為STM32  SPI普通模式 根本就沒有對資料的捕獲 做什麼工作    真的有點糊弄我們

它 只是 當我們把SPI 開啟  他就開始進行捕獲  而不管SCK 此時是閒置的還是忙的    這就造成了 我們讀取的SPI 資料錯誤

解決這個問題也很簡單  只要在軟體中 對 SPI 訊號進行處理  得到SPI 線路是 忙的 還是空閒的

根本就是對 SPI 訊號的 捕獲時機

當我們要進行捕獲前先對匯流排SPI 進行判斷 若匯流排SPI 是空閒的  那麼就開啟SPI 進行資料捕獲

若匯流排SPI 是忙的 就等待 匯流排空閒了  在進行捕獲   經過驗證這個方法通訊成功率 幾乎是沒有問題的

QQ475503748