下面这段程序在软件仿真是没有任何问题,但用PICKIT3调试器仿真或实际单片机运行时,却写不进EEPROM。
for(i=0;i<4;i++)
{
do{}
while(PIR2bits.EEIF==1); /*等待上一次*/
EEADR=0x30+i;
EEDATA=0x65;
EECON1bits.EEPGD=0; /*指向EEPROM*/
EECON1bits.CFGS=0;
PIR2bits.EEIF=0;
INTCONbits.GIE=0; /*关闭所有中断*/
EECON1bits.WREN=1; /*使能EEPROM*/
EECON2=0x55; /*擦写操作用*/
EECON2=0xaa; /*擦写操作用*/
EECON1bits.WR=1; /*启动写EEPROM操作*/
while(!PIR2bits.EEIF); /*等待写EEPROM完成*/
EECON1bits.WREN=0;
PIR2bits.EEIF=0; /*清写EEPROM中断标志*/
}
会是什么地方设置有问题吗?我查过了EEPROM写保护两项都没使用能,芯片是新的,没写过几次。各位大侠,还会是什么地方的问题?
另外还告之,初始化EEPROM也非常正常。 |