![]() |
發布時間: 2022-10-28 11:44
正文摘要:MCU程序: 但是調試的DR寄存器一直是FF,SPI接收函數按道理應該沒有問題 uint8 SPI_SendByte(SPI_TypeDef * SPIx, uint8 byte) { while (SPI_I2S_GetFlagStatus(S ... |
解決了, 因為我初始化了好幾個SPI,且標準包程序宏定義有迷惑性 #define GPIO_AF_SPI4 ((uint8_t)0x05) #define GPIO_AF_SPI5 ((uint8_t)0x05) 這是AF5,SPI5實際上是AF6, #define GPIO_AF6_SPI5 ((uint8_t)0x06) 是因為SPI5初始化時把SPI4的初始化覆蓋了一部分,導致SPI4MISO口出現變化 |
1、搞清SPI通訊原理。 2、有示波器更好了,可以證明,數據的確是正確地出現在數據線上了。 3、讀通CPU芯片手冊上,關于SPI的通訊章節。 4、去除程序中所有與SPI無關的部分(排除干擾) 5、檢查程序有無準確地按照【3、】中的說明去做。 6、走單步調試。 |
補上邏輯分析儀和調試的圖 |