billowcloude 发表于 2026-2-5 09:14:14

远程升级程序,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);写数据也没变化

DebugLab 发表于 2026-2-5 11:29:37

不能仿真IAP,仿真中不能使用IAP读写擦除FLASH,但可以MOVC读
新手必读:
https://www.stcaimcu.com/thread-16535-1-1.html
页: [1]
查看完整版本: 远程升级程序,FLASH不能擦除也不能写