找回密码
 立即注册
查看: 34|回复: 2

stc32g12k128读写问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 昨天 09:37 | 显示全部楼层 |阅读模式
这个是官方例程的iap.c代码
#include "stc.h"
#include "iap.h"

void iap_init()
{
    IAP_CONTR = 0x80;
    IAP_TPS = FOSC / 1000000;
}

BOOL iap_check_addr(DWORD addr)
{
    addr &= 0x1ffff;
  
    return ((addr < 0x10000) ||
            (addr >= (0x10000 + LDR_SIZE)));
}

BYTE iap_read_byte(DWORD addr)
{
    return *(BYTE ecode *)(addr | 0x00fe0000);
}

BOOL iap_write_byte(DWORD addr, BYTE dat)
{
    if (!iap_check_addr(addr))
        return 0;

    IAP_CMD = 2;
    IAP_ADDRE = BYTE2(addr) & 0x01;
    IAP_ADDRH = BYTE1(addr);
    IAP_ADDRL = BYTE0(addr);
    IAP_DATA = dat;
    IAP_TRIG = 0x5a;
    IAP_TRIG = 0xa5;
    _nop_();
    _nop_();
    _nop_();
    _nop_();

    return (iap_read_byte(addr) == dat);
}

void iap_erase_page(DWORD addr)
{
    if (!iap_check_addr(addr))
        return;

    IAP_CMD = 3;
    IAP_ADDRE = BYTE2(addr) & 0x01;
    IAP_ADDRH = BYTE1(addr);
    IAP_ADDRL = BYTE0(addr);
    IAP_TRIG = 0x5a;
    IAP_TRIG = 0xa5;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
}
Q1如果要擦除FE:1000H到FE:FFFFH 
      addr=0x1000;  
      while (addr < 0x10000)
        {
            iap_erase_page(addr);
            addr += 0x200;
        }
Q2如果要擦除FF:1000H到FF:FFFFH 
      addr=0x11000;  
      while (addr < 0x20000)
        {
            iap_erase_page(addr);
            addr += 0x200;
        }

这样操作对吗

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:675
  • 最近打卡:2026-05-09 10:16:13
已绑定手机

52

主题

2623

回帖

9131

积分

论坛元老

积分
9131
发表于 昨天 10:30 | 显示全部楼层
地址没错,FE:0000H~FE:FFFFH 区域的IAP操作地址是 0x000000~0x00FFFF
FF:0000H~FF:FFFFH 区域的IAP操作地址是 0x010000~0x01FFFF
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2026-05-09 09:37:00

4

主题

11

回帖

94

积分

注册会员

积分
94
发表于 昨天 10:57 | 显示全部楼层
乘风*** 发表于 2026-5-9 10:30
地址没错,FE:0000H~FE:FFFFH 区域的IAP操作地址是 0x000000~0x00FFFF
FF:0000H~FF:FFFFH 区域的IAP操作地 ...

感谢大佬
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-10 21:11 , Processed in 0.100813 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表