远程升级程序,FLASH不能擦除也不能写
void ISP_EraseSector(uint16_t addr){
if (!iap_check_addr(addr))
return;
IAP_CMD = 3;//擦除命令
IAP_CONTR = 0xC1;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5A;
IAP_TRIG = 0xA5;
_nop_();
_nop_();
_nop_();
_nop_();
//IAP_CONTR = 0;
}
uint8_t ISP_WriteByte(uint16_t addr, uint8_t dat)
{
if (!iap_check_addr(addr))
return 0;
IAP_CMD = 2;
IAP_CONTR = 0x81;
IAP_DATA= dat;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5A;
IAP_TRIG = 0xA5;
_nop_();
_nop_();
_nop_();
_nop_();
IAP_CONTR = 0;
}
我用ISP_EraseSector(0);擦除扇区0x0000,结果还有数据
我用ISP_WriteByte(0X04, 0X03);写数据也没变化
不能仿真IAP,仿真中不能使用IAP读写擦除FLASH,但可以MOVC读
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
页:
[1]