找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5012|回复: 10
收起左侧

求助STC之EEPROM写、擦

[复制链接]
ID:123289 发表于 2016-11-7 18:36 | 显示全部楼层 |阅读模式
ScreenHunter_002.jpg
回复

使用道具 举报

ID:123289 发表于 2016-11-7 18:38 | 显示全部楼层
另外,将
MOV                IAP_CMD, #3      ;擦除
改为:
MOV                IAP_CMD, #2      ;写入

发现写入数据,也未成功。
回复

使用道具 举报

ID:123289 发表于 2016-11-7 18:47 | 显示全部楼层
程序是用“Keil uVision4”调试的。

另外发现:
“Keil uVision4”的debug,其调试运行指针,无法自由定位。即如果要将运行位置移动至另一个地方运行是办不到的。它只能按照程序的既定序列运行。这很不方便。而伟福的仿真程序是能办到的。
谁有这个问题(对于STC的仿真)的解决方法?这里请教了。
回复

使用道具 举报

ID:7485 发表于 2016-11-7 19:01 | 显示全部楼层
只能说明你对Keil uVision4不熟悉。

运行、运行至光标、插入断点等功能。

用stc的eeprom读写程序试一试?
回复

使用道具 举报

ID:19198 发表于 2016-11-7 22:05 | 显示全部楼层
前几天刚做过STC的EEPROM,发现有两个要点
1.写5A和A5之后(15F104为例)要相应延时给程序操作,否则会中断造成不成功
2.一定要停中断和定时,如果是定时器的我建议放到定时器里面
我也是找了好多天才发现,手册之中只是说了要延时,没说停中断
回复

使用道具 举报

ID:123289 发表于 2016-11-8 00:24 | 显示全部楼层
ahshmj 发表于 2016-11-7 19:01
只能说明你对Keil uVision4不熟悉。

运行、运行至光标、插入断点等功能。

您所列的不在我求助之列!
比如光标停在第10条,我要跳过11-19不运行,将其拖到第20条开始运行,就办不到。或者拖到第9条再运行一次,就办不到。
回复

使用道具 举报

ID:123289 发表于 2016-11-8 00:25 | 显示全部楼层
5楼:先谢过。我停一下中断试试。
回复

使用道具 举报

ID:123289 发表于 2016-11-8 01:11 | 显示全部楼层
按5楼,关中断试了试,无用。附图如下,再求助!
ScreenHunter_004.jpg
回复

使用道具 举报

ID:624769 发表于 2021-10-6 23:12 | 显示全部楼层
yzwzfyz 发表于 2016-11-8 01:11
按5楼,关中断试了试,无用。附图如下,再求助!

你这个问题,最后,解决了么? 如果解决了,可跳过后续内容。

你这个单片机,正式名称应该是 IAP15W4K61S 吧。
STC 的 IAP系列,都是程序和Eeprom 共用空间的,即程序空间 = Eeprom空间 (物理上)。
那么,带来一个问题,对于,KEIL来讲,你是只有程序空间,没有Eeprom空间的。下面比较拗口,不知道我这样描述,你是否能理解,尽我最大努力吧。
在ICE仿真的时候,你的程序,其实是在电脑上的,电脑上单步运行,然后,把需要执行的指令,通过串口传给单片机,然后,单片机收到后在单片机运行,如果有返回值,则把返回值返回给电脑。即,程序在电脑,运行在单片机。
那么,(重点)问题来了,你写一个数值到Eeprom, 指令传输给单片机后,单片机运行后,他确确实实把这个值写到了单片机上的指定位置。此时,有没有返回值?有,写成功这个值回传到电脑了,但是,没有其他的返回值了。因为事实上,Eeprom操作时,也不会有其他的返回值,所以,你电脑端(Keil),根本不会知道,你单片机的某个地址,发生了内容变更。
而,你电脑上Memory 1 看到的,其实是你电脑上的为了执行ICE仿真而做出来的“程序区”的内容。和实际上单片机上的程序区内容,是完全没有任何关系的。事实上,你单片机上烧录了仿真程序后,会占用6K容量,这一点,你在仿真的时候,也无法在Keil的 地址区看到。
所以,这就是一个信息不对称问题,而实际上,你只要多写一个 IAP_CMD = 1 的读程序,读你写入的地址,存到一个变量,你就能发现,IAP操作,其实是成功了。

不知道这么描述,是否能把我想表达的意思传递给你,如果能,就太好了。如果不能,我只能说抱歉了,我已经尽力了。
回复

使用道具 举报

ID:123289 发表于 2021-10-29 13:49 | 显示全部楼层
9#说的很对。的确如此。也意识到此点了。后期仿真时规避掉此了。谢谢。
回复

使用道具 举报

ID:996773 发表于 2023-11-16 14:46 | 显示全部楼层
用的竟然是汇编?我也是汇编搞定eeprom读写,我没碰到这种障碍,我的习惯不用

仿真,其实我也不会用仿真,我在开发板po口接八个指示灯,需要读取数据验证

发送到p0口看一下数值,这种实际方法让我扫除了很多编程路上的障碍
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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