最近使用STM32L476 驅動NRF2401 無線模塊,spi的設定采用cube生成后,移值了原子哥的F407HAL庫驅動NRF2401例程,修改相應引腳后發現check通不過,即檢測不到該模塊的存在。經過排查發現是在HAL_SPI_TransmitReceive(&SPI1_Handler,&buffer,&Rdbuf,1, 1000);這出現了問題 發現不論buffer是什么值,Rdbuf回傳的值都為9。

為了驗證這一點在初始化spi以后,在main中運行以下代碼:

Rdbuf回傳的值仍然為9。這是為什么? 求解!
ps:
時鐘按照默認配置最大值80MHZ
spi配置是cube自動生成的,另外從原子哥的例程里移值了以下代碼在spi.c檔案里
uj5u.com熱心網友回復:
1、代碼不全,不記得hal庫是否需要初始化引腳了,是否使用了默認非GPIO的引腳,如是需配置2、邏輯分析儀是個好工具
uj5u.com熱心網友回復:
關于SPI相關引腳的初始化,stm32cube自動生成的spi初始化函式中已對 SPI相關引腳進行了初始化

另外,“默認非GPIO的引腳”是什么意思?
uj5u.com熱心網友回復:
比如有些引腳上電后默認是 JTAG腳,有些是 OSC腳。除錯直觀的方式還是用 邏輯分析儀監測各個引腳的信號是否正確。
uj5u.com熱心網友回復:
做個配置貌似也沒啥問題, 接外設了沒?確實可以整個邏輯分析試試
uj5u.com熱心網友回復:
我的一直是0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/98668.html
標籤:單片機/工控
上一篇:新建一個賬號
