问题:读取SPI Flash芯片w25q128的ID出错,读出的数值为0xFFFF或0x00FF,实际型号为0xEF17
。。。。。
004 网友说正点原子例程中spi初始化函数波特率预分频值配置为最低,把它改一下,不高也不低,就能正常读写。未解决。
005 对比例程,在STLink设置中留意到core clock设置不同,(“Core Clock”的值决定MDK以什么频率来计算指令周期,因为“Core Clock”的默认值为10MHz,因此如果不修改这个值的话,MDK计算每条指令的运行时间是按10MHz频率来计算的。只有修改为实际使用的频率值,才能得到正确的指令周期。我就是黑马的博客)将其由10MHz改成与例程相同的8MHz。未解决。
006 仔细对照例程,最后发现SPI的初始化函数中,时钟极性SPI_CPOL误选为SPI_CPOL_Low,改为和例程相同的SPI_CPOL_High。问题解决!!!
如果实在找不到原因,最好仔细检查一下最基本的SPI的配置是否正确。