日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 SPI难点浅析

發(fā)布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 SPI难点浅析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我用的是戰(zhàn)艦STM32開發(fā)板,兩個知識點,一:是STM32 SPI的原理;二:用STM32自帶的SPI對外部flash(W25Q64)的讀寫。
一:STM32 SPI的原理
????? 先上圖:

主模式從模式:主模式:主設備在SCK腳產(chǎn)生時鐘;從模式:SCK引腳用來接收從主設備傳來的時鐘。

通常SPI通過4個引腳與外部器件相連:
????? 1、MISO:主設備數(shù)據(jù)輸入,從設備數(shù)據(jù)輸出引腳。
????? 2、
MOSI:主設備數(shù)據(jù)輸出,從設備數(shù)據(jù)輸入引腳。
????? 3、SCLK:串口時鐘,由主設備輸出,從設備輸入。
????? 4、NSS
:從設備選擇

這里必須牢記一點:從上圖中可以看出,SPI通信是雙向的,主機往從機里面寫一個數(shù)據(jù),他自己同時也能讀到一個數(shù)據(jù)。這點在SPI的編程中很重要,理解了很簡單!

前3個引腳根據(jù)框圖都能看明白,下面主要講第4個引腳:NSS。
????? NSS:從設備選擇引腳。這是一個可選的引腳,用來選擇主/從設備。他的功能是用來作為“片選引腳”,讓主設備可以單獨的與特定的從設備通訊,避免數(shù)據(jù)線上的沖突。
????? 前面相信大家都能看明白。下圖是NSS用來選擇主從設備

?????? 先簡單說明一下NSS引腳的兩種模式:硬件NSS模式軟件NSS模式。
?????? 硬件NSS:是指SPI自動控制SPI的片選信號,發(fā)送數(shù)據(jù)時,輸出低電平;不發(fā)送數(shù)據(jù)時,輸出高電平。但是實際操作中,NSS根本無法自己置位和復位(ST技術人員承認的bug)。故一般不用硬件NSS,因為這種方式就只能一個SPI接一個從機。
?????? 軟件NSS:就是用軟件的方式(普通IO口)控制SPI的片選,發(fā)送數(shù)據(jù)時,軟件置片選為低;結(jié)束傳輸時,軟件置片選為高。優(yōu)點:一個SPI可以控制多個從機(多個片選線)。
在上圖硬件NSS中
?????? 1的意思:
?????? (前提是NSS輸出被使能)當你的STM32工作為主SPI模式,這時NSS引腳被拉低,所有SPI設備的NSS引腳與這個主SPI設備的NSS相連,將自動被配置為從SPI設備。
?????? 2的意思:
?????? 當SPI配置為NSS 硬件模式時,通過檢測NSS引腳的可以實現(xiàn)自身主機和從機的切換。也就是說,STM32 SPI通過檢測NSS,一旦發(fā)現(xiàn)NSS線不為低,自己就輸出低,從而配置成為主設備。
?????? 如果
STM32 SPI檢測到NSS線為低,則說明傳輸系統(tǒng)中已經(jīng)有一個主設備存在了,自己就配置成從設備。
在上圖軟件NSS中
?????? 1、可以使用STM32給的的NSS引腳(如SPI2的PB12引腳)來實現(xiàn)片選,這時要配置SPI_CR1寄存器來設置PB12輸出高低電平。
?????? 2、也可以用普通IO來實現(xiàn)片選。這里不多說,純軟件控制~


二:用STM32自帶的SPI對外部flash(W25Q64)的讀寫
???????
用STM32自帶的SPI對W25Q64的讀寫其實并不難,主要是根據(jù)W25Q64提供的操作時序來編寫相應代碼。譬如:在讀W25Q64數(shù)據(jù)的操作是,先往W25Q64中寫要讀的指令(0x03)。然后按照W25Q64數(shù)據(jù)手冊中給的時序圖來編寫代碼。并不難~

總結(jié)

以上是生活随笔為你收集整理的STM32 SPI难点浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。