|
HAL庫函數(shù)編程,同一塊板子里SPI1做主機,SPI2做從機,SPI和相關(guān)GPIO口配置完成后,主程序里用HAL_SPI_Receive_IT()準備接受數(shù)據(jù)。圖片里是main.c中發(fā)送數(shù)據(jù)的程序和中斷回調(diào)函數(shù)(片選NSS寫在SPI2下了,不過設(shè)置NSS為軟件控制,這個應該不影響)目前遇到的情況是:
1、可以進入一次中斷但只能進入一次。懷疑是沒有清除中斷標志位,但是我甚至不知道keil調(diào)試中應該加什么寄存器來查看(手冊里寫的寄存器好像都是SPI2S->TXDR這樣,難道對于SPI1和SPI2都是這個寄存器嗎?)
2、從機部分接收不到數(shù)據(jù),主機也收不到從機發(fā)回的數(shù)據(jù)。這個也許是我函數(shù)調(diào)用錯了,但是HAL_SPI_Receive_IT()應該能接受數(shù)據(jù)才對吧?
3、剛進入中斷的時候會修改全局變量Slave_Tx_value為0,本來前面初始化為6,所以我在中斷中又設(shè)置了一次
HAL_SPI_Receive_IT()能進入中斷是否說明至少spi引腳配置得沒問題?
在這個問題上糾結(jié)了兩天了也沒解決,希望能得到大佬指點,萬分萬分感謝!!
|
|