找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC8H单片机eeprom不能保存数据

查看数: 1387 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-9-1 20:48

正文摘要:

/******************************************************************/ #include    "eeprom.h" #include <intrins.h> /***************************************************************** ...

回复

ID:307493 发表于 2024-9-7 21:00
已解决,谢谢大家
ID:624769 发表于 2024-9-4 22:20
STC庄伟 发表于 2024-9-2 10:13
平常不要操作 STC32G/STC8H的EEPROM:
1,上电时读到 SRAM 中;
2,平常在SRAM中改写;

你说用比较器做掉电检测,其他用法都是错的??

那么,STC的“掉电中断”是干什么吃的? 样子货?
ID:161164 发表于 2024-9-4 09:47
qq378912453 发表于 2024-9-2 22:07
#include "config.h"
/*************        功能说明        **************
选择时钟 11.0592MHz (可以在配置文件"con ...

update_admin_passwd和update_admin_passwd1在哪里运行?
ID:227818 发表于 2024-9-3 08:08
本帖最后由 newlined 于 2024-9-3 09:12 编辑

前边楼层已经想到了,编辑掉了,请版主删掉此贴,谢谢。
ID:307493 发表于 2024-9-2 22:14
wpppmlah 发表于 2024-9-2 08:40
单字节,指定地址读写,进行实验,如果没问题,就是你的连续读写代码有问题,另外注意连续读写跨扇区问题,STC是 ...

这个main 初始化已经初始化了 ,就是根据官方改的,目前可以写可以读,就是断电不会保存
ID:307493 发表于 2024-9-2 22:07
#include "config.h"
/*************        功能说明        **************
选择时钟 11.0592MHz (可以在配置文件"config.h"中修改).
******************************************/
/**********************************************/
int main(void)
{
    P_SW2 |= 0x80; // 允许访问扩展寄存器xsfr
    IRCDB = 0x10;  // IRCDB设置减小,增加内部高速振荡器去抖
    IAP_TPS = 11;   //设置EEPROM操作等待参数(11.0592MHz),初始化设置一次即可
    EA    = 1;     // 允许全局中断
    INT0_Init();
    Timer0_Init();
    GPIO_config();
    PrintfInit(); // 串口波特率
    ADC_config();
    Touch_Init();
    /**********************************************/
    open_flag  = 1; // 默认开的状态
    close_flag = 0;
    /**********************************************/
    mode_yongjiu = 1;  //永久模式(固定模式)
    mode_linshi  = 0;
    /**********************************************/
    while (1)
    {
       // key();
        /**********************************************/
        Touch_Scan();
        /**********************************************/
        Show_Vol(); // 显示电池的电压
        /**********************************************/
        handle_key_function(); // 状态机切换
        /**********************************************/
    }
}
ID:57657 发表于 2024-9-2 16:39
STC的EEPROM的读写擦除方法:
字节读:部分系列可使用unsigned char/int/long code指针或汇编MOVC访问(STC89/90系列除外)。
字节编程:二进制1可以写为0,0不能写为1,必须擦除后才可以继续写。
扇区擦除:没有字节擦除,1次擦1扇区为512字节,擦除后全部恢复为0xFF。
ID:226055 发表于 2024-9-2 14:22
    1、你没有给出STC8H具体的单片机型号,所以一定注意,有些单片机是出厂自带EEPROM,有些没有EEPROM,而只有再手动分割FLASH出来作为EEPROM使用。手上正好有艾克姆科技的STC8H8K64U的开发板,把相关资料分享给你。

    2、STC8H8K64U是没有片内EEPROM的,所以需要在STC-ISP下载软件时分好EEPROM空间。如果芯片自带片内EEPROM,则无需分割,比如STC8H8K48U。


    3、程序源码见附件,下载程序后,打开串口助手可观察对片内EEPROM的读写操作。

EEPROM.rar

34.05 KB, 下载次数: 1

ID:961114 发表于 2024-9-2 10:14
ID:961114 发表于 2024-9-2 10:13
平常不要操作 STC32G/STC8H的EEPROM:
1,上电时读到 SRAM 中;
2,平常在SRAM中改写;
3,掉电时及时保存到 EEPROM/DATA-FLASH中!
用内部比较器做外部掉电检测!!!
其他用法都是错误的用法

ID:161164 发表于 2024-9-2 09:37
代码不全,main()呢?
ID:68189 发表于 2024-9-2 08:40
单字节,指定地址读写,进行实验,如果没问题,就是你的连续读写代码有问题,另外注意连续读写跨扇区问题,STC是扇区擦除,写之前需要对当前扇区先进行擦除操作,才能写.严格按照官方的代码进行操作,一般不会出问题,另外设置等待参数为什么要注释掉呢: //IAP_TPS = 12;

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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