从西门子一个设备上拆下一个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);
}
这是部分程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
需要把每一位读出来吗?前提WP这个脚我已经接VCC了,已经解除硬件写保护了。我是这样写的,先写使能,完了以后读是否写使能了。之后再写数据,在读是否还在写数据周期。(结果一直还在写周期里面没出来。死在这个读写数据周期里面)如果加延时,去掉读是否写周期完毕。最后还是写不进去。不知道怎么回事。
一周热门 更多>