CBYTE是libc ABSACC.H中的定义,是一个指针,不是数值0,#include 即可
IAP_OFFSET是MOVC读的基地址,就 ...
上面的能理解, 并且也是这么换算的。
仔细看您的代码:原来读是要加上程序地址的, 写是不要加。 而我都把读写都加了程序地址。
感谢{:shengli:}
DebugLab 发表于 2025-1-5 10:25
CBYTE是libc ABSACC.H中的定义,是一个指针,不是数值0,#include 即可
IAP_OFFSET是MOVC读的基地址,就 ...
感谢。发现问题了, 读是加了偏移量, 写是不要加偏移量的。而我读写都加了偏移量引起。
{:shengli:} marchwang88 发表于 2025-1-5 14:04
感谢。发现问题了, 读是加了偏移量, 写是不要加偏移量的。而我读写都加了偏移量引起。
...
这个读是MOVC读,所以要加偏移地址
IAP读不需要加偏移地址
你用IAP读,就都不需要加偏移地址,都是从0开始
MOVC读速度较快,推荐使用
IAP读(速度较慢,不推荐使用):
unsigned char Iap_Read_Byte(unsigned char sector,unsigned int addr)
{
unsigned char dat;
unsigned int add;
add=sector*0x0200+addr;
IAP_CONTR|=IAPEN;
IAP_TPS=IAP_TPS_;
IAP_CMD=IAP_READ;
IAP_ADDRL=add;
IAP_ADDRH=add>>8;
IAP_TRIG=0x5A;
IAP_TRIG=0xA5;
_nop_();
dat=IAP_DATA;
Iap_Idle();
return dat;
}
页:
1
[2]