|
代码如下://写入数据函数
void IapProgramByte(uint16 addr ,uint8 dat)
{
EA= 0 ;
IAP_CONTR = 0X83;
IAP_CMD = 2;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0X5A;
IAP_TRIG = 0X5A;
_nop_();
IAP_DATA = dat;
IapIdle(); //关闭 IAP
EA = 1;
}
//调用部分,擦除动作前面做了
for(k = 0; k < 512;k ++)
{
IapProgramByte(IAP_ADDRESS + k , k );
}
IAP_ADDRESS 设置的是 0x2000,单片机是 STC15W4K56S4。加上上面调用代码,无法回读到数据;去掉上面调用的代码,读到的数据是ff(调用之前有擦除数据,ff应该是默认的吧)。请问是写入数据函数错了吗,还是其它什么问题?
|
|