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

[复制链接]
2082|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      
再读出来就没问题,很奇怪

 

那位做过提示一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

856

主题

1046

帖子

4

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