C8051F020内的非易失性FLASH的读写问题

[复制链接]
4115|5
 楼主| zxq1234508 发表于 2011-5-5 21:59 | 显示全部楼层 |阅读模式
有没有那位用过C8051F020内的非易失性FLASH?我现在按照参考程序做,但是读出来的数据总是有错误,有没有那位有这方面的程序,参考一下。谢谢!我的程序如下,麻烦有经验的朋友帮忙看看有些什么问题。数组wr[]是需要存储的数据,数组re[]是读出的数据。
void Flash_Read()
{
   uchar code *pread;
   uchar i;
   PSCTL=0x04;
   pread=0x00;
   for(i=0;i<8;i++)
   re[i]=*(pread++);
   FLSCL=0x00;
   PSCTL=0x00;
   nop();
}

void Flash_Write()
{
    uchar xdata *pwrite;
    uchar i;
    EA=0;
    FLSCL=0x01;
    PSCTL=0x07;//03
    pwrite=0x00;
    *pwrite=0x00;
    PSCTL=0x05;//01
    for(i=0;i<8;i++)
       {
           *(pwrite++)=wr[i];
       }
    FLSCL=0x00;
    PSCTL=0x00;
    EA=1;
}
ayb_ice 发表于 2011-5-6 08:28 | 显示全部楼层
多看手册自然就明白了
xjycug 发表于 2011-5-6 21:21 | 显示全部楼层
好像要先擦除128字节的内容,然后才能写啊
 楼主| zxq1234508 发表于 2011-5-6 22:32 | 显示全部楼层
哎 现在是读出的数据有时正常有时不正常。十分的郁闷啊 官网上的样例程序试了一下 数据都似乎没有写进去。
ayb_ice 发表于 2011-5-7 08:23 | 显示全部楼层
还需要有个页擦除程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

485

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部