Memory Can';不保存到闪存?

Memory Can';不保存到闪存?,memory,embedded,microcontroller,pic,microchip,Memory,Embedded,Microcontroller,Pic,Microchip,我正在使用以下库来擦除/写入/读取内存,但不幸的是,我试图保存的数据似乎没有写入闪存。我正在使用带有MPLAB XC8编译器的PIC18F87j11。另外,当我尝试写入PIC后从PIC读取程序内存时,地址0x1C0CA上没有数据。我做错了什么 char read[1]; /* set FOSC clock to 8MHZ */ OSCCON = 0b01110000; /* turn off 4x PLL */ OSCTUNE = 0x00; TRISDbits.TRISD6 = 0;

我正在使用以下库来擦除/写入/读取内存,但不幸的是,我试图保存的数据似乎没有写入闪存。我正在使用带有MPLAB XC8编译器的PIC18F87j11。另外,当我尝试写入PIC后从PIC读取程序内存时,地址0x1C0CA上没有数据。我做错了什么

char read[1];
  /* set FOSC clock to 8MHZ */
OSCCON = 0b01110000;

/* turn off 4x PLL */
OSCTUNE = 0x00;

TRISDbits.TRISD6 = 0; // set as ouput
TRISDbits.TRISD7 = 0; // set as ouput

LATDbits.LATD6 = 0; // LED 1 OFF
LATDbits.LATD7 = 1; // LED 2 ON

EraseFlash(0x1C0CA, 0x1C0CA);
WriteBytesFlash(0x1C0CA, 1, 0x01);
ReadFlash(0x1C0CA, 1, read[0]);


if (read[0] == 0x01)
    LATDbits.LATD6 = 1; // LED 1 ON

while (1) {


}

我不知道WriteFlashBytes的作用是什么,但您的设备的页面大小是64字节,在写入后,您需要将ulock序列写入EECON2和EECON1寄存器,以开始对闪存进行编程

您确定
ReadFlash(0x1C0CA,1,读取[0])不应该是
ReadFlash(0x1C0CA,1,read)?无论哪种方式它都不工作,因为当我从PIC读取程序内存时,根本没有写入内存。但是你是对的,它应该是
读取
,而不是
读取[0]