STM32 庫函式學習筆記 SPI 01

2021-08-21 12:39:19 字數 1696 閱讀 5114

spi介面使用4線通訊:

miso:主裝置輸入,從裝置輸出

mosi:主裝置輸出,從裝置輸入

sclk:時鐘

cs:片選

主從機都有乙個序列移位暫存器,主機通過向其暫存器寫入乙個位元組來發起一次傳輸。

主從機的移位暫存器組成環形,每個時鐘週期移動一位,每8或16個週期,兩暫存器資料完全交換(幀格式可選8或16位)。

從機的讀寫操作是同步的。主機只做寫操作就忽略接受的位元組,只做讀操作就傳送乙個空位元組來引發從機傳輸。

stm32 spi引腳

spi1:pa5-7

spi2:pb13-15

spi3:pb3-5

(片選採用軟體nss模式,spi_nss腳不用)

引腳配置

從選擇(nss)腳管理

選用軟體nss模式,設定spi_cr暫存器的ssm位來使能。

時鐘相位和極性

由spi_cr暫存器的cpol和cpha來組合成4中時序關係:

資料幀格式

spi_cr1暫存器中的lsbfirst位,輸出資料位時可以msb在先也可以lsb在先。

spi_cr1暫存器的dff位,每個資料幀可以是8位或是16位。所選擇的資料幀格式對傳送和/或接收都有效。

應用程式通過3個狀態標誌可以完全監控spi匯流排的狀態。

傳送緩衝器空閒標誌(txe)

此標誌為』1』時表明傳送緩衝器為空,可以寫下乙個待傳送的資料進入緩衝器中。當寫入spi_dr時, txe標誌被清除。

接收緩衝器非空(rxne)

此標誌為』1』時表明在接收緩衝器中包含有效的接收資料。讀spi資料暫存器可以清除此標誌。

忙(busy)標誌

bsy標誌由硬體設定與清除(寫入此位無效果),此標誌表明spi通訊層的狀態。

當它被設定為』1』時,表明spi正忙於通訊,但有乙個例外:在主模式的雙向接收模式下(mstr=1、bdm=1並且bdoe=0),在接收期間bsy標誌保持為低。

中斷事件

事件標誌

使能控制位

傳送緩衝器空

txetxeie

接收緩衝器非空

rxne

rxeie

主模式失效

modf

errie

溢位錯誤

ovrerrie

crc錯誤

crcerr

errie

STM32庫函式學習筆記

usart串列埠stmf103rb庫函式程式設計筆記之串列埠收發usart 開發版為nucleo官方的f103rbt6的開發板,主要思路為 初始化usart2 void usart2 init unsigned long ulbaud 傳送字元 引數 串列埠型別,傳送的字元,返回值是傳送到字元 un...

STM32 學習筆記 SPI通訊配置

spi時序圖如下 stm32做為主機設計spi時序一般選用cpol 1 cpha 1 1 時鐘使能。gpio時鐘使能rcc apb2enr,spi時鐘使能rcc apb2enr設定。為什麼還要連線gpio時鐘,參見stm32參考手冊8.1.4節。手冊上這麼說的 對於復用輸出功能,埠必須配置成復用功能...

STM32鍵盤 庫函式

昨天晚上老大回來看我頻繁使用暫存器寫程式給出指點,告訴我盡量使用庫函式,少使用暫存器,畢竟暫存器在後面使用的時候還要乙個乙個查詢手冊可能太麻煩了,nice!這次使用庫函式操作鍵盤,很基礎的實驗,其中摻雜了之前的蜂鳴器和led內容。感覺基礎鍵盤實驗比較有價值的還是那個鍵盤操作函式,以下給出標準模板,m...