解决了, 因为我初始化了好几个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、走单步调试。 |
补上逻辑分析仪和调试的图 |