EECON2 = 0X55;
Nop();
Nop();
Nop();
EECON2 = 0XAA;
这个是解锁序列, 你如果仔细看datasheet,会发现, 明确有要求说解锁序列是连续的, 不能被打断, 你这里还加这么多nop...
初步看起来这个地方的问题最大...其实,可以用MCC自动生成的FLASH/E2PROM的代码, 简单又实用...
ps. 操作FLASH/E2PROM根编译器版本没多大关系, 主要是对原理理解了, 编译出来的代码都不会有问题的.
The write will not begin if this sequence is not exactly
followed (write 55h to EECON2, write 0AAh to
EECON2, then set WR bit) for each byte. It is strongly
recommended that interrupts be disabled during this
code segment.
|