总结一下spi3的问题,因为spi3的nss口与JTAG有共用引脚,所以配置错误会导致SPI3无法使用。需要注意以下三点就可以了:
1.将PA15配置为普通IO口,GPIO_Mode_Out_PP
2.开启AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
3.关闭JTAG功能,使能SWD
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE) ;
其他的SPI口正常配置,因为板子重启后默认为JTAG模式,虽然在调试时使用了SWD,但PA15依然不是普通的IO口,当把它重新配置时,一定要开启AFIO时钟,如果不开启的话,只有GPIO_PinRemapConfig(),会导致程序崩溃,在调试的时候会乱跳,具体原因我也不知道。
以上配置是我调试后的,肯定没问题。注意千万不要使用GPIO_Remap_SWJ_Disable ,因为这样就不能下载程序了,要开锁很麻烦的。