辉芒微单片机FT61F13x/E13x,Eeprom操作问题:写入新数据之前会删除现有的,并且不能直接读取

        由于项目需要,这里选用了FT61F135、FT61E135这两个单片机,用于开发rf315、rf433.92功能,,,由于rf程序是从121芯片迁移过来的方案,并且也在145芯片上移植测试过,程序上没有问题,,,但是,迁移到135却出现了问题

        问题大致如下:学习时,把rf315、rf433.92接收到并解码成功的数据写入到内部的Eeprom后,发现按遥控器没有解码成功输出。

        接下来就是程序开始逐步排除问题

        1、先把以下与Eeprom数据对比的代码注释掉,再次按键测试,有按键亮灯解码输出,没有问题!

        2、通过ide仿真测试,数据已经正确的写入到内部的Eeprom区域,然后又开始注释掉其他的子程序,逐步测试,也没有问题

        3、还下载的该芯片的例程,测试例程发现,例程没有问题,可以正常读写。那问题就是程序上了

        4、接下来,把ee驱动复制到不同的位置,又挨个注释掉不同的子程序,最终发现问题就是出在Eeprom数据读取上!

        5、突然有了灵感,要不然创建一个uchar数组,先把已经写入Eeprom的数据读出来,看看读出的数据对不对。就这样,开干

        6、然后创建了一个  uchar num[4] 的数组,读取Eeprom数据区,发现读出来的数据顺序是错的

        在Eeprom保存的数据,0x8A、0x18、0xA1是按顺序排列保存的,读取到数组的程序,顺序是乱的,而且还发现根据数组的长度不同,读取到数据后,数据顺序排列也是随机的,这有点儿一时纳闷.......

        既然读出的数据及顺序是错的,那就把数组的长度设置大一些,先设置10个,再次读取数据发现,数据顺序是对上了,可是读出的数据向后错位了一位,如下图所示

        最后又找了多个遥控器,测试数据,又发现了一个新的问题,就是在Eeprom写入新的数据之前,不管Eeprom现有的数据是什么,统一先删除已有的,再写入新的数据(这有儿像stc单片机,Flash工艺的页操作)

        解决方案:

        1、先创建一个长数组,用于读取Eeprom现有的数据

        2、把新数据写入到数组,然后再统一把数据数据写到Eeprom

        3、把数据对比指向之前创建的数组,不要指向Eeprom区域,即可!

        最后:大功告成 ^_^

        ​​​末:如果大家还遇到了其他的问题,可是欢迎留言哦 ^_^

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值