【问题标题】:Can't save to Flash Memory?无法保存到闪存?
【发布时间】:2013-12-20 20:37:02
【问题描述】:

我正在使用以下库 <flash.h> 从内存中擦除/写入/读取,但不幸的是,我尝试保存的数据似乎没有写入闪存。我正在使用带有 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) {


}

【问题讨论】:

  • 你确定ReadFlash(0x1C0CA, 1, read[0]);不应该是ReadFlash(0x1C0CA, 1, read);吗?
  • 不管怎样都行不通,因为当我从 PIC 读取程序内存时,根本没有写入内存。
  • 但你是对的,它应该是 read 而不是 read[0]

标签: memory embedded microcontroller pic microchip


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2012-07-02
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多