SPI EEPROM芯片AT25128写不进去数据怎么回事?

2019-07-20 12:29发布

从西门子一个设备上拆下一个SPI EEPROM AT25128片子,用STC12单片机是可以把AT25128 EEPROM的数据读出来的。但是我想修改AT25128的数据,怎么也写不进去。我也是严格按照AT25128的时序写的。求大神指导下。硬件上WP和HOLD都接VCC了
void writedata_toSPI(unsigned int spiaddr,unsigned char SPIdate)
{
 unsigned char status=0;
 unsigned char SPIaddrh,SPIaddrl;
 SPIaddrh=spiaddr>>8;              //h高八位的值
 SPIaddrl=(unsigned char)spiaddr; //第八位的值   EEPROM_write_Enable();             //必须先写使能
 delay100ms(5);     SPI_CS=0;
 delay_us(10);  EEPROM_write_order(WRITE);  //发送指令
 EEPROM_write_order(SPIaddrh); //高八位数据
 EEPROM_write_order(SPIaddrl); //第八位数据
 EEPROM_write_order(SPIdate);  //数据     delay_us(10);
 SPI_CS=1;  //拉高
 delay100ms(2);
}
这是部分程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
huifeidetuzi
2019-07-21 12:07
回复【7楼】styleno1:
---------------------------------
需要把每一位读出来吗?前提WP这个脚我已经接VCC了,已经解除硬件写保护了。我是这样写的,先写使能,完了以后读是否写使能了。之后再写数据,在读是否还在写数据周期。(结果一直还在写周期里面没出来。死在这个读写数据周期里面)如果加延时,去掉读是否写周期完毕。最后还是写不进去。不知道怎么回事。

一周热门 更多>