找回密码
 立即注册
查看: 436|回复: 4

新人求助!!STC8H8K64U,写入EEPROM失败

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:185
  • 最近打卡:2025-04-30 15:20:38

12

主题

58

回帖

936

积分

高级会员

积分
936
发表于 2024-6-7 18:40:20 | 显示全部楼层 |阅读模式
先贴代码

#define EEPROM_MOTOR_PAGE_BASE     (126 * EEPROM_PAGE_SIZE)//EEPROM扇区大小
#define EEPROM_PAGE_SIZE (0x200)



unsigned char buff[200];
unsigned char i = 0;
void debug(void)
{
        Memory_Read(EEPROM_MOTOR_PAGE_BASE,buff,200);
        for(i = 0 ; i < 200 ; i ++)
        {
                buff[i] = i;
        }
        //擦出扇区
        Sector_Erase(EEPROM_MOTOR_PAGE_BASE);           //擦除扇区
        Memory_Write(EEPROM_MOTOR_PAGE_BASE,buff,200);
        Memory_Read(EEPROM_MOTOR_PAGE_BASE,buff,200);
        for(i = 0 ; i < 200 ; i ++)
        {
                Uart1_SendData(buff[i]);
        }
}



串口打印结果如下:

[18:34:15.749]接收←00 01 02 03 08 05 06 0F 08 11 0A 0B 1C 19 1E 1F
                    20 31 22 33 2C 25 2E 27 30 31 3A 33 3C 3D 3E 3F
                    40 41 42 43 44 45 46 4F 58 51 5A 57 5C 4D 5E 4F
                    60 71 62 63 6C 65 6E 67 70 79 7A 73 7C 7D 7E 7F
                    80 81 82 83 84 85 8E 87 90 99 92 9B 9C 9D 9E 8F
                    A0 B1 A2 A3 AC A5 AE AF B8 B1 BA B3 BC BD BE BF
                    C0 C1 C2 C3 C8 C5 C6 C7 D0 D9 D2 DB D8 DD DE DF
                    F0 E1 E2 E3 E4 ED EE F7 F0 F9 F2 FB FC FD FE FF
                    00 01 02 03 0C 05 06 07 10 19 0A 13 0C 1D 0E 1F
                    20 21 22 23 24 29 26 37 30 39 36 3B 3C 3D 3E 3F
                    40 41 46 43 44 4D 46 4F 48 51 5A 53 5C 59 5E 4F
                    60 71 62 63 6C 65 76 6F 78 71 7A 7B 7C 7D 7E 7F
                    80 81 82 83 84 8D 8E 87
[18:34:44.919]接收←00 01 02 03 04 0D 06 0F 18 11 1A 13 1C 19 0E 1F
                    30 31 22 33 24 35 26 37 30 39 32 3B 3C 3D 3E 3F
                    40 41 42 43 44 49 46 4F 48 51 5A 53 5C 5D 5E 5F
                    60 61 62 73 64 75 66 77 70 79 72 7B 7C 7D 7E 7F
                    80 81 82 83 84 85 86 87 88 91 8A 93 8C 9D 9E 9F
                    A0 A1 A2 A3 AC A5 A6 AF B8 B1 BA B3 BC BD BE BF
                    C0 C1 C2 C3 C8 C5 CE C7 D0 D9 D2 DB DC DD DE DF
                    E0 E1 F2 E3 F4 F5 E6 F7 F0 F9 FA F3 FC F9 FE FF
                    00 01 02 03 04 0D 06 0F 10 09 12 0B 1C 1D 1E 1F
                    20 21 22 23 28 25 36 27 38 31 3A 3B 3C 3D 3E 3F
                    40 41 42 43 44 49 46 47 50 49 52 4B 5C 5D 5E 5F
                    60 61 72 63 74 69 66 6F 70 79 7A 73 7C 79 7E 7F
                    80 81 82 83 8C 8D 86 8F


逻辑代码还没写,只写了部分外设初始化的代码,操作时也关闭中断了,EA=0;实在找不到原因了,我怀疑是我写的东西太多了
Program Size: data=9.0 xdata=3014 code=55908

麻烦大佬们帮忙看下是什么原因导致的;
用官方例程写是没问题的
回复

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-6-7 19:34:12 | 显示全部楼层
126个扇区可以修改 ?
===63K 可以修改 ? 前 1K 不能修改
截图202406071934088531.jpg

烧录时要设置 EEPROM 大小
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:185
  • 最近打卡:2025-04-30 15:20:38

12

主题

58

回帖

936

积分

高级会员

积分
936
发表于 2024-6-8 14:09:31 | 显示全部楼层
神*** 发表于 2024-6-7 19:34
126个扇区可以修改 ?
===63K 可以修改 ? 前 1K 不能修改

可以改鼎哥,我设置的64K,第126个扇区是63K的起始地址;我今天调试的时候发现问题了;我在读取之前启动了我的一个串口定时发送,是在定时器里的,我把这个放在后面就可以了,我没想到是什么原因;
截图202406081409268304.jpg
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-6-8 14:38:48 | 显示全部楼层
截图202406081437068923.jpg

STC8H8K64U, 64K全开放给 IAP修改,要特别注意
IAP 指向的地址 0000H, 就是实际的程序区 0000H了
===程序 0000H 就会被擦除/修改了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:185
  • 最近打卡:2025-04-30 15:20:38

12

主题

58

回帖

936

积分

高级会员

积分
936
发表于 2024-6-8 14:46:14 | 显示全部楼层
神*** 发表于 2024-6-8 14:38
STC8H8K64U, 64K全开放给 IAP修改,要特别注意
IAP 指向的地址 0000H, 就是实际的程序区 0000H了
===程序 ...

地址没问题的,我这边是从后往前操作的,126页是最后一K地址
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:22 , Processed in 0.169075 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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