找回密码
 立即注册
查看: 96|回复: 5

使用stc8h1k24这个芯片操作eeprom地址多少

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 10:12:18
已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2025-4-1 10:12:18 | 显示全部楼层 |阅读模式
使用STC8H1K24这个芯片,用到eeprom功能,
地址在0X0400进行eeprom的操作,发现不能读写,
查了资料还是没能理解,
这个芯片的eeprom地址是多少到多少的地址可以使用到?

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 10:12:18
已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2025-4-1 10:28:55 | 显示全部楼层
国芯人*** 发表于 2025-4-1 10:18
在使用STC8H1K24芯片进行EEPROM操作时,首先需要明确该芯片的EEPROM地址范围以及相关的操作规范。根据STC8H ...

手册上不是写着STC8H1K24的eeprom有4K吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2025-4-1 11:18:27 | 显示全部楼层
截图202504011116467165.jpg


截图202504011117442553.jpg

截图202504011118244208.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 10:12:18
已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2025-4-1 11:50:56 | 显示全部楼层

按照图片的信息,是0X000到0XFFF啊,为啥0X0400这个地址为什么会读写不了呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2025-4-1 11:53:32 | 显示全部楼层
截图202504011152563337.jpg


这个寄存器必须正确设置
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-01 10:12:18
已绑定手机

1

主题

3

回帖

15

积分

新手上路

积分
15
发表于 2025-4-1 11:58:43 | 显示全部楼层
晶振是设置的12M的

void IapIdle()
{
    IAP_CONTR = 0;                              //关闭IAP功能
    IAP_CMD = 0;                                //清除命令寄存器
    IAP_TRIG = 0;                               //清除触发寄存器
    IAP_ADDRH = 0x80;                           //将地址设置到非IAP区域
    IAP_ADDRL = 0;
}

char IapRead(int addr)
{
    char dat;

    IAP_CONTR = 0x80;                           //使能IAP
    IAP_TPS = 12;                               //设置等待参数12MHz
    IAP_CMD = 1;                                //设置IAP读命令
    IAP_ADDRL = addr;                           //设置IAP低地址
    IAP_ADDRH = addr >> 8;                      //设置IAP高地址
    IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
    IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
    _nop_();
    dat = IAP_DATA;                             //读IAP数据
    IapIdle();                                  //关闭IAP功能

    return dat;
}

void IapProgram(int addr, char dat)
{
    IAP_CONTR = 0x80;                           //使能IAP
    IAP_TPS = 12;                               //设置等待参数12MHz
    IAP_CMD = 2;                                //设置IAP写命令
    IAP_ADDRL = addr;                           //设置IAP低地址
    IAP_ADDRH = addr >> 8;                      //设置IAP高地址
    IAP_DATA = dat;                             //写IAP数据
    IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
    IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
    _nop_();
    IapIdle();                                  //关闭IAP功能
}

void IapErase(int addr)
{
    IAP_CONTR = 0x80;                           //使能IAP
    IAP_TPS = 12;                               //设置等待参数12MHz
    IAP_CMD = 3;                                //设置IAP擦除命令
    IAP_ADDRL = addr;                           //设置IAP低地址
    IAP_ADDRH = addr >> 8;                      //设置IAP高地址
    IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
    IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
    _nop_();                                    //
    IapIdle();                                  //关闭IAP功能
}
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:33 , Processed in 0.180845 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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