STM32之間SPI通訊

2021-06-16 17:44:02 字數 838 閱讀 3280

這幾天實驗室比較忙,所以部落格這邊停了一下,繼續吧。

繼串列埠中斷後,大家可以嘗試微控制器間串列埠通訊,這裡就不再多贅述。串列埠完了之後,我接著學的就是spi通訊了,作為hello moto公司推出的這種4線全雙工通訊,很節約pcb布局空間,但缺點就是沒有指定的流控制,沒有應答機制來確定訊號收到與否,比i2c在硬體上要稍微複雜一點。

話不多說,上程式最有助理解。下面是spi通訊的傳送端的spi初始化主程式。

void spi_configuration(void)

//spi讀寫函式

傳送主機只要用乙個迴圈去傳送你想要傳送的東西就行,就不附程式了。但要注意的是,每法送乙個字元就要delay一下,讓接收從機有足夠時間處理發來的資料。

接下來是接收從機,用的是中斷接收。

spi初始化與上面的一樣,只需新增以下一段中端配置模組就行。

//進行spi1的中斷配置

nvic_prioritygroupconfig(nvic_prioritygroup_0);

nvic_initstructure.nvic_irqchannel = spi1_irqn;

nvic_initstructure.nvic_irqchannelsubpriority = 0; //優先順序為第0級

nvic_initstructure.nvic_irqchannelcmd = enable;

nvic_init(&nvic_initstructure);

至於中斷的接收方法與串列埠中斷的接收方法一樣,也不再贅述。

①為什麼傳送的時候將cpol設為高就會每復位一次就在接受串列埠上列印出乙個新值?

②為什麼spi的讀寫要寫在一起??

望大家多多發言,謝謝

STM32 硬體SPI主從通訊

本例子基於stm32f103zet6晶元,實現spi1與spi2的主從通訊。其中spi1配置為主機,spi2配置為從機,均配置為全雙工模式。硬體連線圖 其中,我們需要注意的是,spi的從機不能主動傳送資料,只能應答資料。本例子的資料互動過程 主機使用查詢方式傳送資料給從機。從機使用中斷接收方式接收資...

STM32 學習筆記 SPI通訊配置

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

STM32筆記 SPI通訊

相對於上次說的iic,這次我們來回憶一下spi,之前並沒有過多深入了解spi協議,所以這次再來記錄一下,首先附上資料裡的spi定義 spi,是英語 serial peripheral inte ce 的縮寫,顧名思義就是序列外圍裝置介面。spi,是一種高速的,全雙工,同步的通訊匯流排,並且在晶元的管...