打印
[国产单片机]

STC 12c5410AD EEPROM 的问题

[复制链接]
4211|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaojian|  楼主 | 2009-4-26 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编程序时 发现写入EEPROM的数据 读出的时候不正确,所以写了 下面的程序:
Byte_Program(0x2800,0x0f);
    
    while(1)
    {
        SBUF=Byte_Read(0x2800);
        while(TI==0);
        TI=0;
    }
//Sector_Erase(0x2800);
写进去的是0f 怎么串口吐出来的  是 E8??
单片机 重新上电 就 正确了 烧写程序后 不断电 串口吐出的数据就不对。
我一开始发现整个程序的问题是 扇区擦除不正确,因为修改的EEPROM中的数据,1能变0 0不能变1,可后来写了个测试:
Byte_Program(0x2800,0x0f);
Sector_Erase(0x2800);
while(1)
{
    SBUF=Byte_Read(0x2800);
    while(TI==0);
    TI=0;
}
发现串口吐出去的数据是FF,那说明扇区擦除正常啊。我怎么感觉一会儿好使 一会儿又 不好使呢 。
各位大侠 请 指教。

相关帖子

沙发
gylg1314love| | 2009-5-5 15:58 | 只看该作者

小小答疑

那个EEPROM读写和别的不那么一样哦,它是FLASH的一部分,要写入必须先整片擦除(也就是写1)然后从新写入要写入的数据。读就不会有问题了
原因:不能将0写为1,必须擦除

使用特权

评论回复
板凳
cooperate| | 2009-5-5 21:30 | 只看该作者

按你提供的代码 还不能完全说明是读flash的问题

建议:
    1、先检查串口通讯部分,比如下载5410时默认时钟是选择内部的,而程序中波特率你是否按外部时钟频率算的?比如你的串口电路是否存在驱动问题?
    2、如沿用老姚的读写参考程序,需注意(1)不同时钟频率时的对应写延时(2)stc的iap寄存器操作需连续执行,不允许打断;
    3、stc的flash eeprom操作有低电压限制的,cpu能跑起来不代表eeprom能工作,我以前用LE2052时就被这个问题困扰过。
    
    总之,stc的flash eeprom读写很简单,稍微花点时间排查下自己的软硬件吧,呵呵。 

使用特权

评论回复
地板
刘君成| | 2009-5-10 09:11 | 只看该作者

学习啦。。。。

使用特权

评论回复
5
saiyiluqi| | 2009-12-10 10:33 | 只看该作者
请问一下,哪个ic能够完全替代它的?

使用特权

评论回复
6
kerry-liu| | 2009-12-10 10:43 | 只看该作者
我们有一整系列的EEPROM MCU,可以找到代替品如果需求你请联系我
电话:0755-86155426
           传真: 0755-86155429      
           手机:13530206925
             QQ: 946944798
            MSN: kerry-liukai@hotmail.com
          Skype: kerry-liukai
           邮箱:KERRY@NEWWAVE-SZ.COM

使用特权

评论回复
7
51dz| | 2009-12-12 20:30 | 只看该作者
有可以替代STC的CPU,可以做点广告呀

使用特权

评论回复
8
David_ming| | 2010-1-15 18:27 | 只看该作者
这个不叫EEPROM,是flash一部分,楼主注意啦,读写方式是不同的

使用特权

评论回复
9
sae001| | 2010-1-19 15:51 | 只看该作者
我对这个一点也不懂

使用特权

评论回复
10
juelang| | 2010-1-21 05:04 | 只看该作者
学习哈

使用特权

评论回复
11
McuPlayer| | 2010-1-21 12:34 | 只看该作者
对STC的Flash存数据的方法没用过
注意flash的寿命问题,免得产品还没过保修期就返厂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

196

帖子

0

粉丝