找回密码
 立即注册
查看: 57|回复: 6

我使用 STC32G8K48芯片 现在掉电不能保存 | 可以了

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-12-16 11:16:07
已绑定手机

2

主题

2

回帖

14

积分

新手上路

积分
14
发表于 前天 16:49 | 显示全部楼层 |阅读模式
#include "ALL_IO.H"
#include "COM_B.H"

我选 的晶振是22.1184
void IapIdle()
{
    IAP_CONTR = 0;                              //关闭IAP功能
    IAP_CMD = 0;                                //清除命令寄存器
    IAP_TRIG = 0;          //清除触发寄存器
    IAP_ADDRE=0XFF;
    IAP_ADDRH = 0x00;                           //将地址设置到非IAP区域
    IAP_ADDRL = 0;
}

char IapRead(unsigned  short addr)
{
    char dat;

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

    return dat;
}

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

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

unsigned short temp_eep_add=10;
void save_dat(void)
{

//unsigned char temp_data;
EA=0;
IapErase(temp_eep_add);
IapProgram(temp_eep_add,ALARM_statse);
EA=1;
}



void read_data(void)
{
//unsigned short temp_eep_add=10;

        EA=0;
ALARM_statse=IapRead(temp_eep_add);  
第一次读出来,不是0XFF 是0

if(ALARM_statse>10)
{
        ALARM_statse=1;
}
EA=1;

}




请高手,帮看一下,谢谢
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:266
  • 最近打卡:2025-12-16 08:29:17

812

主题

1万

回帖

2万

积分

管理员

积分
21282
发表于 前天 17:28 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-12-16 11:16:07
已绑定手机

2

主题

2

回帖

14

积分

新手上路

积分
14
发表于 前天 17:31 | 显示全部楼层
神*** 发表于 2025-12-15 17:28
EEPROM的使用 请 配合比较器做掉电检测 | 唯一正解,电力系统标准应用 - EEPROM/DataFlash 国芯人工智能 ...

我的芯片,电源是5V,主要是掉电不能保存 EEPROM保存不进
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2025-12-16 10:58:38
已绑定手机

1

主题

43

回帖

171

积分

注册会员

积分
171
发表于 前天 18:21 | 显示全部楼层
未见到对save_dat()、read_data()的调用情况
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:645
  • 最近打卡:2025-12-16 08:20:22
已绑定手机

93

主题

6933

回帖

1万

积分

超级版主

积分
13008
发表于 昨天 08:28 | 显示全部楼层
请上传原理图和完整程序
要使用比较器判断掉电,没有看到比较器中断函数和楼上提到的函数调用
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-12-16 09:16:46
已绑定手机

49

主题

2368

回帖

8416

积分

论坛元老

积分
8416
发表于 昨天 09:53 | 显示全部楼层
IAP读、写、擦除函数里
IAP_ADDRE=0XFF;
改成
IAP_ADDRE=0X00;、

如果还是不行的话,用附件例子测试。

按键触发EEPROM读写测试程序-通过串口1输出-32G.zip

17.6 KB, 下载次数: 2

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-12-16 11:16:07
已绑定手机

2

主题

2

回帖

14

积分

新手上路

积分
14
发表于 昨天 13:43 | 显示全部楼层
乘风*** 发表于 2025-12-16 09:53
IAP读、写、擦除函数里
IAP_ADDRE=0XFF;
改成

你的程序可以使用,谢谢你,这个我搞了2天都不行
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-17 03:16 , Processed in 0.106928 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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