读取W25Q64的设备ID时输出0xff

发现的问题

读取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);
  • 最后是我自己最蠢的问题,原来连接连接的杜邦线是断的,导致数据不正常

你可能感兴趣的:(嵌入式硬件,stm32)