STM32F429I spi读取flash id正常,无法写和读数据
我用的主控芯片是STM32F429IGTx。我参考“【野火】零死角玩转STM32—F429挑战者”文档的“第24章 SPI—读写串行 FLASH”,
现象如下
1、读取“DeviceID”,“FlashID”都成功且正确。
2、写入数据之后 ,读取出来的都是000000.
能否帮分析一下问题产生的可能 原因?
非常感谢!
读取id是正常的说明SPI通信配置是没有问题的,数据不对建议查查数据手册读写的时序,命令是不是有问题。 写数据前是否擦除芯片? SPI写数据之前必须要擦除,而且要按page擦除,这种储存器不像EEPROM可以随机寻址和单个字节读写。
另外,检查一下,是否有可能是写保护了?一般的Flash芯片都会有一个WP的引脚(Write Protect),看看它的电平是否允许写数据
要确定是读程序还是写程序的问题,方法如下:
换个您了解具体地址及内容的flash,先选读处理,看读出是否OK,调试你的读程序,细对比协议,直到OK
再 接着处理写操作程序。 各位大神说得都很有道理,建议楼主耐心的看看产品手册,了解FLASH操作的具体时序,对比软件驱动架构,看看是否符合。不是针对该型号的驱动都需要调整一下的。:) 楼主能否把问题原因写上,其他兄弟参考,不要再犯同样错误。
页:
[1]