1. 程式人生 > 實用技巧 >stm32 學習--Stm32F407 SPI1 全雙工DMA 收發資料

stm32 學習--Stm32F407 SPI1 全雙工DMA 收發資料

最近被 ESP8266 的設計整崩潰了, 一個半的 串列埠 真的 坑。 為了讓 我畢設中的 ESP8266 和 Stm32F4 微控制器進行資料傳輸,我需要找到一種除了 串列埠意外的 通訊方式(吐槽一下,要是用串列埠的話 真的太簡單啊) 最終我盯上了 SPI 的協議 所以就有這個部落格。 這是我的 一個試驗程式。

程式碼地址:https://download.csdn.net/download/weixin_41534481/12230493

宣告一下 這個部落格中的主要程式碼不是我寫的,是我在網上找到的 原作者是

在這裡向原作者致敬,如果您不希望我寫這個部落格 那麼請聯絡我。 我這裡只是分享一下程式碼的思路(我的程式碼做了一定的自己的修改)。

這是 GPIO的 初始化部分,其中的 PA4 是NSS 引腳 這裡我使用的是 軟體 NSS 所以就單獨配置一下輸出

手冊中的引腳複用在這裡

這一部分是 SPI 的 引數設定, 都是一些基本的引數 就不去介紹了

這是實際測試的 速度

這個是 DMA 的配置部分 也是整個程式的精華所在 主要就是 設定了一些 DMA 的基本引數, 後面的註釋是我跟據 意思加的

這是 DMA 雙工傳送的 程式碼 同時進行收和發

這是原本的程式碼 相比我的多了一個 設定 儲存器地址的自增 這部分 應該是不需要的

寫這篇部落格 主要是給自己以後一個參考, ESP8266 的 通訊還是不好解決的 。

如果用SPI 協議的話 還是需要一個主機 一個從機 而 ESP8266 做 從機比較難做

程式碼的下載地址:

https://download.csdn.net/download/weixin_41534481/12230493

https://blog.csdn.net/weixin_41534481/article/details/104675738?utm_medium=distribute.pc_relevant.none-task-blog-utm_term-1&spm=1001.2101.3001.4242