關於stm32硬體spi的miso口配置

2021-08-26 12:04:23 字數 750 閱讀 5724

在我們剛使用spi時,對於spi的io口配置可能會有一些疑惑吧,miso明明是乙個輸入口卻配置成了復用推挽輸出,是不是會有一點疑惑呢?

gpio_initstructure.gpio_pin = gpio_pin_4 | gpio_pin_5 | gpio_pin_6 | gpio_pin_7;

gpio_initstructure.gpio_speed = gpio_speed_50mhz;

gpio_initstructure.gpio_mode = gpio_mode_af_pp;     // 復用的推挽輸出

miso不是應該設定成為輸入埠(gpio_mode_in_floating)才行的嗎?是不是很抑或呢?

哈哈哈,開始我和大家也有一樣的疑惑,問了兩個同事也沒有個答案,自己再網上找了資料慢慢才明白了其中緣由。

其實配置為復用推挽輸出也是可以正常工作的,只不過配置成浮空輸入和上拉輸入更容易理解。

具體產生這一問題的原因是:從功能上來說,miso應該配置為輸入模式才對,但為什麼也可以配置為gpio_mode_af_pp?實際上當乙個gpio埠配置為gpio_mode_af_pp時,片上外設的復用功能輸出訊號會連線到輸出控制電路,然後在埠上產生輸出訊號。但是在晶元內部,miso是spi模組的輸入引腳,而不是輸出引腳,也就是說「復用功能輸出訊號"根本不存在,所以"輸出控制電路"就不能對外部產生輸出訊號,然而即使在復用推挽輸出模式下,復用功能輸入訊號卻與外部引腳之間相互連線,既miso得到了外部訊號的電平,實現了輸入的功能。

STM32 硬體SPI主從通訊

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

STM32通訊介面(三)硬體SPI

spi是序列外設介面 serial peripheral inte ce 的縮寫。spi,是一種高速的,全雙工,同步的通訊匯流排,是motorola最先在其的mc68hcxx晶元上使用,並且在晶元的管腳上只占用四根線,節約了晶元的管腳,同時為pcb的布局上節省空間,提供方便,正是出於這種簡單易用的特...

STM32之間SPI通訊

這幾天實驗室比較忙,所以部落格這邊停了一下,繼續吧。繼串列埠中斷後,大家可以嘗試微控制器間串列埠通訊,這裡就不再多贅述。串列埠完了之後,我接著學的就是spi通訊了,作為hello moto公司推出的這種4線全雙工通訊,很節約pcb布局空間,但缺點就是沒有指定的流控制,沒有應答機制來確定訊號收到與否,...