平時會使用硬體spi,但是只用於應用沒有具體深入了解spi的執行流程,此處我採用抓取波形的方式對spi進行了一下深入了解。
void spi1_init(void)
首先我們來分析一下這個配置:
spi_initstructure.spi_mode
spi主從設定
spi_initstructure.spi_datasize
資料大小8位或者16位
spi_initstructure.spi_cpol
時鐘預設狀態
spi_initstructure.spi_cpha
時鐘觸發模式
spi_initstructure.spi_nss
nss(片選)訊號
spi_initstructure.spi_baudrateprescaler
定義波特率的預分頻值:對這個形參做一下分析,由於我們的spi是在apb2匯流排下,所以他的頻率是72mhz,然後經過256分頻後,那麼此時我們的spi時鐘頻率=72/256=281.25khz。
spi_initstructure.spi_firstbit
資料傳輸從lsb還是msb開始
spi_initstructure.spi_crcpolynomial
資料的crc校驗
在這裡主要對spi_initstructure.spi_cpha這一位做一下深入解析,通過邏輯分析儀來看一下具體的傳輸格式是怎麼樣的。
從圖中我們可以看到cs(片選)拉低後,spi通訊正式開始,cs拉高後通訊結束。在spi_cpha=0的情況下我們將從時鐘的第乙個邊沿開始採集資料,即圖中時鐘的低電平時採集資料。
STM32 SPI主從通訊
分享乙個大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到人工智慧的隊伍中來!我的 我的知乎 獲取更多資訊。主機 訪問密碼 7bb6 從機 訪問密碼 fd5a 訪問密碼 ca90 測試原理及現象 主機間隔500ms傳送10個字元 0 9 從機開啟spi中斷接收資料,接收滿10...
STM32 SPI傳送波形
三 實測波形總結 根據spi協議,stm32傳送的波形有四種可能,如圖所示,主要分為兩種時鐘相位 cpha 和時鐘極性 cpol 關於時鐘極性,也有很多人把它理解為第乙個邊沿,第二個邊沿 也有人覺得cpha 0時,時鐘是從第乙個邊沿啟動,這樣理解不是很準確。其實還有第二種理解方式,那就是它們都是 第...
stm32 spi 疑惑解疑 1
傳送時,可以通過檢測spi sr中的txe位,當資料暫存器裡有資料時,txe位是0,當資料全部從資料暫存器的傳送緩衝區傳輸到移位暫存器時txe位被置1,這時候可以再往資料暫存器裡寫入資料。可以通過 while spi i2s getflagstatus spi1,spi i2s flag txe r...