pic18f4620单片机数据写入内部EEPROM的问题

[复制链接]
667|13
 楼主| happy_10 发表于 2021-1-7 21:13 | 显示全部楼层 |阅读模式
本帖最后由 happy_10 于 2021-1-7 21:14 编辑


写了一个把一个字节写入到内部EEPROM的程序,但是我硬件仿真的时候,内部EEPROM相应的地址上不显示我写入的字节,但是我用软件仿真的时候,内部EEPROM相应的地址上就显示我写入的字节,请教大家是怎么一回事
supernan 发表于 2021-1-7 21:18 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| happy_10 发表于 2021-1-7 21:22 | 显示全部楼层
部分程序如下
  EEADRH = 0x00;         //EEPROM 地址的高位
    EEADR = 0x00;         //EEPROM 地址的底位
    EEDATA = 0x18;         //要写入的数据
    EECON1bits.EEPGD = 0;   //访问EEPROM存储器
    EECON1bits.CFGS = 0;    //访问闪存程序存储器或者EEPROM存储器
    EECON1bits.WREN = 1;    //允许对闪存程序器或者EEPROM存储器写周期
    INTCONbits.GIE = 0;     //禁止中断
    EECON2 = 0x55;          //必须的序列
    EECON2 = 0xAA;          //必须的序列
    EECON1bits.WR = 1;      //启动写周期
    INTCONbits.GIE = 1;     //使能中断
    while(!PIR2bits.EEIF);  //写完成后,EEPROM中断标志位EEIF被置1
    PIR2bits.EEIF = 0;      //EEIF必须用软件清0
    EECON1bits.WREN = 0;
kangzj 发表于 2021-1-7 21:27 | 显示全部楼层
写完查询下,不对就再写
 楼主| happy_10 发表于 2021-1-7 21:31 | 显示全部楼层
我这指令完全是按照数据手册上写的,应该是无误的
 楼主| happy_10 发表于 2021-1-7 21:34 | 显示全部楼层
可就是用kit3硬件调试时,EEPROM相应的地址没有数据显示
wenfen 发表于 2021-1-7 21:38 | 显示全部楼层

硬件仿真时都EEPROM好像滞后很多
juventus9554 发表于 2021-1-7 21:45 | 显示全部楼层
想要知道写入的对不对,写后在读出来看看。
renyaq 发表于 2021-1-7 21:48 | 显示全部楼层
注意EEPROM有个写入时间, 你可以看DataSheet电气特性eeprom章节, 大概5ms的样子...
 楼主| happy_10 发表于 2021-1-7 21:51 | 显示全部楼层
你说对了,数据可以从EEPROM中读出来,说明已经写进EEPROM中了
 楼主| happy_10 发表于 2021-1-7 21:54 | 显示全部楼层
那我想在调试的时候,可以在MPLAB X IDE开发环境中EEPROM相应的地址上显示我写入的数据,需要怎么做啊
llia 发表于 2021-1-7 21:59 | 显示全部楼层
硬件仿真,IDE的EEPROM窗口并不会实时更新的,只能把芯片read回来,才会刷新
shimx 发表于 2021-1-7 22:05 | 显示全部楼层
EE Data Memory 不会自己刷新,需要点击该窗口左上的Read, 才能显示出来.(注: 如果是在debug模式下, Read按钮是灰色的,说明这个器件不支持Debug-Reads, 那就退出debug模式,让MCU自己运行,然后点击Read按钮)
 楼主| happy_10 发表于 2021-1-7 22:11 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

744

主题

7973

帖子

6

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