发现的问题
读取W25Q64的设备ID时输出0xff
找到的不同解决方法
- 检查MISO和MOSI是否接对。MISO->DO,MOSI->DI
- 检查程序在初始化spi时是否将SS拉高、SCK拉低
- 如果是硬件spi那么检查SPI的初始化函数中,时钟极性SPI_CPOL误选为SPI_CPOL_Low,改为和例程相同的SPI_CPOL_High。
- 如果使用PB3/4引脚作为软件spi引脚时,因为使用了PB3、PB4这两个引脚上电复位默认是作为调试端口使用的。所以得先关闭JTAG功能才行
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关闭pb3、4,pa15的JTAG功能,打开sw调试功能
初始化时,PB3、PB4做普通io需打开复用功能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - 最后是我自己最蠢的问题,原来连接连接的杜邦线是断的,导致数据不正常