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

EEPROM上电读取,变量高八位由00变为FF,是什么原因呢?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-07-26 21:59:37

1

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2025-7-26 21:59:37 | 显示全部楼层 |阅读模式
EEPROM_Read(0x000a) = 0x00
EEPROM_Read(0x000b = 0xdc
,无论断电前还是断电后,EEPROM中的数据没变;
但是上电后执行Temp_Data1 = (uint)(EEPROM_Read(0x000a) << 8) | EEPROM_Read(0x000b);
得到Temp_Data1 = 0xffdc,

Temp_Data1,最高位应该是00,怎么读取到是ff了?


芯片:STC8H8K64U ,工作频率:33.1776MHz
我用EEPROM,共存储了7个参数,其中就两个参数,上电读取存参数时不正常.出现高位00变ff的情况,另外5个是正常的
7个参数写正常,存储在EEPROM的0001---000b中.
什么原因造成的 呢?


回复

使用道具 举报 送花

3

主题

1880

回帖

608

积分

等待验证会员

积分
608
发表于 2025-7-26 22:03:00 | 显示全部楼层
根据您描述的现象,EEPROM上电后读取的变量高八位由00变为FF,而低八位数据未发生变化,且EEPROM中的内容在断电前后均未改变,说明问题可能出在数据解析或寄存器配置方面,而非EEPROM本身的数据损坏。

首先,您提供的代码片段为:

```c
TempData1 = (uint)(EEPROMRead(0x000a)

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-10-15 08:26:15
已绑定手机

86

主题

6274

回帖

1万

积分

超级版主

积分
11734
发表于 2025-7-27 09:09:51 | 显示全部楼层
00变FF可能是意外擦除导致的
编程只能1变0,只有扇区擦除才能0变1
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 2025-7-27 09:26:17 | 显示全部楼层
用实验箱的测试程序,测试下
截图202507270925196517.jpg
深圳国芯人工智能有限公司-实验箱

一定要看最新数据手册
https://www.stcaimcu.com/data/download/Datasheet/STC8H.pdf
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:357
  • 最近打卡:2025-10-16 02:25:02
已绑定手机

14

主题

210

回帖

2140

积分

金牌会员

积分
2140
发表于 2025-7-27 10:21:54 | 显示全部楼层
(uint) ( EEPROM_Read(0x000a) << 8 )
( (uint)EEPROM_Read(0x000a) ) << 8

这两种写法有区别吗
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 06:14 , Processed in 0.120371 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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