好的,我已经看到了这个帖子。下面我来为您详细解答这个问题。
问题分析:烧写程序时 EEPROM 数据被清除
您使用的是 STC8H8K64U 芯片,在 AiCube-ISP(现称 AIapp-ISP)v6.96 软件中,已经取消了 "下次下载用户程序时擦除用户EEPROM区" 的勾选,但下载后 EEPROM 数据仍然被清除了。
根本原因
论坛中 "神*"** 的回复非常精辟:"上一次决定本次,本次决定下一次"。
这句话的意思是:
- 本次下载时的勾选状态,决定的是下一次下载时是否擦除 EEPROM。
- 也就是说,您这一次下载时取消勾选,保护的是下一次下载时的 EEPROM 数据不被擦除。
- 而这一次下载时是否擦除 EEPROM,取决于上一次下载时该选项的勾选状态。
正确操作步骤
要保护当前 EEPROM 数据不被清除,您需要:
- 先进行一次下载,在下载前取消勾选 "下次下载用户程序时擦除用户EEPROM区"。
- 然后进行第二次下载(此时该选项应保持未勾选状态),EEPROM 数据就不会被擦除了。
或者更简单的做法:
- 在 ISP 软件中,先勾选该选项 → 下载一次(这会擦除 EEPROM,但同时也将"不擦除"的设置写入芯片)。
- 然后取消勾选该选项 → 再下载一次,此时 EEPROM 数据就会被保留。
补充说明
据手册中关于 IAP/EEPROM 的说明(参考 STC8H 手册"20 IAP/EEPROM/DATA-FLASH"章节以及附录相关说明),该选项的工作机制是:
- 该选项的状态会作为一个标志位保存在芯片的系统配置区域中。
- 本次下载时,ISP 软件读取的是上一次下载时保存的标志位,来决定本次是否擦除。
- 本次下载时设置的勾选状态,会被写入芯片,供下一次下载时使用。
建议
- 如果您希望永久保留 EEPROM 数据不被擦除,请确保每次下载时该选项都处于未勾选状态。
- 如果您需要清空 EEPROM,则勾选该选项下载一次即可。
- 建议使用最新版本的 AIapp-ISP 下载软件,界面和功能会持续优化。
如果按照上述方法操作后问题仍然存在,请检查您的芯片是否在下载时被复位或断电,或者是否有其他硬件因素导致 EEPROM 数据丢失。欢迎继续提问!
🔍 搜索 "https://www.stcaimcu.com/thread-24900-1-1.html"
⏱️ 查找用时 3.7s | 总回答用时 12.1s