关于EEPROM存储地址设置到最后0.5K时,写入及读出错误
我在往EEPROM里面写入及读取数据时,无论几个数据,只要是地址从0x0000设置都可以;但是当我需要把EEPROM存储地址设置到0XFE01、0xFE00、0XFDFF、0XFDFD(最后0.5K)时,写入及读出都会错误。真有点不知所措了,在此贴上读、写代码,恳请大神们指点指点,感谢啦!一、读取代码:
//下面的 recv_buff为接收到的数据临时数组缓存、 recv_len为接收到的数据长度
u16 xdata i = 2; //判断数据起始点
u8 xdata j = 0;
u8 w_r_flag = 1; //读写标志
u8 xdata data[ 9 ]; //各个数据临时缓存
for ( j = 0; j < 8; j++ ) //判断第2~7个数据是否为0
{
if ( recv_buff[ i + j ] != 0 )
{
/*若接收到的数据域里面有不为0的数据,就判定为此时为写入*/
w_r_flag = 1; //写入指令
break;
}else w_r_flag = 0; //读取指令
}
if ( w_r_flag == 0 ) //获取接收到的信息
{
IapReadData(0xFE00, data, 9); //从eeprom里面的地址0xFE00开始连读
recv_buff[ i++ ] = data[ 0 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 1 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 2 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 3 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 4 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 5 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 6 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 7 ]; //获取并存入缓存
recv_buff[ i++ ] = data[ 8 ]; //获取并存入缓存
Transfer_Car_Uart_Send( recv_buff, i ); //发送函数(已测试通过),此处原型略;目的把从eeprom连读的数据返回。
}
二、写入代码:
if ( w_r_flag == 1 ) //写入接收到的信息
{
data[ 0 ] = recv_buff[ 2 ];
data[ 1 ] = recv_buff[ 3 ];
data[ 2 ] = recv_buff[ 4 ];
data[ 3 ] = recv_buff[ 5 ];
data[ 4 ] = recv_buff[ 6 ];
data[ 5 ] = recv_buff[ 7 ];
data[ 6 ] = recv_buff[ 8 ];
data[ 7 ] = recv_buff[ 9 ];
data[ 8 ] = recv_buff[ 10 ];
IapWriteData(0xFE00, data, 9); //把接收到的数据从地址0xFE00连写到EEPROM里面
i = recv_len;
Transfer_Car_Uart_Send( recv_buff, i ); //串口返回要写入的信息
}
写入后再次读出都是FF 已经自行解决了,是地址不对,大意了{:sweat:} 读和写都是相对位置,只有movc是绝对地址 后面大家还是用支持仿真的STC8/STC32来开发新产品
STC8H8K64U自带硬件USB直接仿真步骤 - 编译器/仿真器/ISP下载/做自己的ISP/ID号加密/程序加密后传输 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
深圳国芯人工智能有限公司-常见问题 (stcai.com)
kksk 发表于 2023-4-29 10:24
读和写都是相对位置,只有movc是绝对地址
感谢{:handshake:} 神农鼎 发表于 2023-4-29 11:37
后面大家还是用支持仿真的STC8/STC32来开发新产品
下一次就是改用8H8H64及32G来开发了!{:tongue:} 这样就可以共享我们 STC8H8K64U / STC32G12K128 实验箱 和 核心板 上大量正确的开源共享程序 神农鼎 发表于 2023-4-29 17:30
这样就可以共享我们 STC8H8K64U / STC32G12K128 实验箱 和 核心板 上大量正确的开源共享程序 ...
嗯嗯,确实,我选择STC也是因为你们的示例程序及手册越来越丰富了,便于我们开发使用!最主要的还有你们的技术人员很给力,解答及支持很耐心、细致呀!!特别是梁工,感觉我从他那里受益匪浅!!感谢!! wenhuixuan 发表于 2023-4-29 10:15
已经自行解决了,是地址不对,大意了
我的情况和你一样,你最后设置地址是多少才正确?
页:
[1]
2