STC片载FLASH好象不怎么好用

[复制链接]
3420|11
 楼主| huangli211 发表于 2008-11-7 21:42 | 显示全部楼层 |阅读模式
soso 发表于 2008-11-7 23:15 | 显示全部楼层

RE

很好用啊,你所说的不好用,是那方面的?
所有的FLASH都是要先擦除,才能写数据的哦
hyhjjg 发表于 2008-11-9 19:51 | 显示全部楼层

回张工

他提供的以8000H起的片载DATE FALSH做数据存储看起来很是方便,用他们提供的函数操作的时候写进去都返回OK,可是读出都不对的,是那里还没有做的位吗?
z_no1 发表于 2008-11-9 19:55 | 显示全部楼层

代码,没代码要人家怎么帮你啊?

z_no1 发表于 2008-11-9 20:43 | 显示全部楼层

昏倒,你找不到重点啊?

你是读写有问题,可你拿来的程序是读写的上层程序,关键的读写驱动却没有。
u8 byte_read(u16 address)
{
?????????
}
void byte_program(u16 address,u8 dat)
{
????????????
}
hyhjjg 发表于 2008-11-9 20:54 | 显示全部楼层

回z_no1朋友读写驱动是STC的网站上提供的

/* ×Ö½Ú±à³Ì */
INT8U byte_program(INT16U byte_addr, INT8U original_data)
{
    ISP_ADDRH    =    (INT8U)(byte_addr >> 8);
    ISP_ADDRL    =    (INT8U)(byte_addr & 0x00ff);

    ISP_CMD        =    ISP_CMD    &    0xf8;        /* 1111,1000 */
    ISP_CMD        =    ISP_CMD    |    PROGRAM_AP_and_Data_Memory_Command;        /* 0000,0010 */
    ISP_DATA    =    original_data;

    ISP_IAP_enable();
    ISP_TRIG    =    0x46;        /* ´¥·¢ISP_IAPÃüÁî */
    ISP_TRIG    =    0xb9;        /* ´¥·¢ISP_IAPÃüÁî */
    _nop_();

    ISP_IAP_disable();
    return    OK;
}
hyhjjg 发表于 2008-11-9 20:58 | 显示全部楼层

应该不是驱动的问题

icmap 发表于 2008-11-9 21:58 | 显示全部楼层

写 Flash Data 的任何一个字节之前

要保证该字节的原有内容为 0xff。
hyhjjg 发表于 2008-11-9 22:11 | 显示全部楼层

就是说必须要在写之前要擦除?

 楼主| huangli211 发表于 2008-11-9 22:14 | 显示全部楼层

刚才看看以下

好象只能以200H为单位擦除,这就很是不方便了
z_no1 发表于 2008-11-9 22:45 | 显示全部楼层

FLASH嘛,又不是真的EEPROM。

FLASH和EEPROM的最大区别就在可不可以单个字节改写。
李冬发 发表于 2008-11-10 00:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

86

帖子

0

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