打印

那位用过stc89le58rd+的flash读写程序

[复制链接]
1406|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2008-2-29 12:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我可以成功写进去,可是读出来就不对了,我用了下面这个函数

“INT8U write_flash_with_protect_in_one_sector(INT16U begin_addr, INT16U counter, INT8U array[])“

 INT8U  Test_array_total[2] ={0X01,0X02} ;

    pr= Test_array_total ;

f(    write_flash_with_protect_in_one_sector(0x8000, 2, pr))
        display_OK_LED();
    else
        display_ERROR_LED();*/ 

目的在第一个扇区的8000和8001,写进0x01和0x02,指示灯就亮了,说明
写进去了

然后我用INT8U sector_erase(INT16U sector_addr)函数

    if(    byte_read(0x8001)==0X02)
        {    display_OK_LED();}    

读出来指示灯就不亮了,说明读出来的时候有问题?

但是我用单字节写函数
INT8U byte_program_and_verify(INT16U byte_addr, INT8U original_data)

if(byte_program_and_verify(DEBUG_Data_Memory_Begin_Sector_addr,0x55) == OK)

    display_OK_LED(); //  P1^2
    else
        display_ERROR_LED(); //P1^1      
再读出来就没问题,很奇怪

 

那位做过提示一下

相关帖子

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

本版积分规则

851

主题

1039

帖子

4

粉丝