STM32 SPI筆記(基於暫存器)

2021-08-21 14:54:04 字數 1478 閱讀 1117

1.說在前面:最近嘗試操作vs1053音訊模組 使用的資料傳輸方法使用spi協議,打算學一下spi的配置方式

2.spi

2-1:spi(secial periperal inte***ce),作為四線的通訊介面,有著miso mosi sclk和cs

miso:主進從出

mosi:主出從進

sclk: 時間訊號

cs:片選訊號

2-2:cpha和cpol

cpha為時鐘相位,可以配置為1/0,控制資料的取樣方式,設定為0的時候,控制在時鐘週期的第乙個跳變沿進行資料採集,設定為1的時候在第二個跳變沿進行採集

cpol為時鐘極性,可以配置為1/0,控制空閒狀態的時鐘極性,設定為0的時候空閒狀態為低電平,設定為1空閒狀態為高電平

時序圖:

3.配置思路

3-1:設定spi1的時鐘和復用引腳時鐘(spi_clock apb2enr的12位)

在設定設定pa5 6 7(sck miso mosi)為復用模式

3-2:設定工作模式(說實話 庫函式設定採用結構體方式看起來很清晰,暫存器直接對spi->cr1進行設定)

設定主/從機模式  資料的位數和時間記性和相位以及spi時鐘的時鐘頻率

oid spi1_init(void)

3-3:spi的速度設定以及使能(對spi->cr1配置)使能位:spi1->cr1|=1<<6;

//spi1 速度設定函式

//speedset:0~7

//spi速度=fapb2/2^(speedset+1)

//apb2時鐘一般為72mhz

void spi1_setspeed(u8 speedset)

3-4:傳送資料配置(檢查傳送區的資料是否進行傳送(傳送區是否為空)spi1->sr的最低位是否為0)

u8 spi1_readwritebyte(u8 txdata)

spi1->dr=txdata; //傳送乙個byte

retry=0;

while((spi1->sr&1<<0)==0) //等待接收完乙個byte

return spi1->dr; //返**到的資料

}

3-5:spi的作用範圍為eeprom flash rtc ad等 是一種高速全雙工,同步的通訊匯流排

STM32學習 SPI筆記 暫存器版

1.介紹 2.模擬spi 3.硬體spi 一 介紹簡述 1 通常 spi 通訊要求 4 根線,分別是 mosi 主機輸出從機輸入 miso 主機輸入從機輸出 clk 時鐘線 cs 片選線 2 當傳送和接受資料的工作都準備好了,只要有時鐘 clk,就傳送資料,沒有時鐘就不傳送,而且乙個時鐘週期傳送一位...

STM32 SPI主從通訊

分享乙個大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到人工智慧的隊伍中來!我的 我的知乎 獲取更多資訊。主機 訪問密碼 7bb6 從機 訪問密碼 fd5a 訪問密碼 ca90 測試原理及現象 主機間隔500ms傳送10個字元 0 9 從機開啟spi中斷接收資料,接收滿10...

STM32 SPI傳送波形

三 實測波形總結 根據spi協議,stm32傳送的波形有四種可能,如圖所示,主要分為兩種時鐘相位 cpha 和時鐘極性 cpol 關於時鐘極性,也有很多人把它理解為第乙個邊沿,第二個邊沿 也有人覺得cpha 0時,時鐘是從第乙個邊沿啟動,這樣理解不是很準確。其實還有第二種理解方式,那就是它們都是 第...