找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6560|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

求助STC之EEPROM寫、擦

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2016-11-7 18:38 | 只看該作者
另外,將
MOV                IAP_CMD, #3      ;擦除
改為:
MOV                IAP_CMD, #2      ;寫入

發(fā)現(xiàn)寫入數(shù)據(jù),也未成功。
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2016-11-7 18:47 | 只看該作者
程序是用“Keil uVision4”調(diào)試的。

另外發(fā)現(xiàn):
“Keil uVision4”的debug,其調(diào)試運(yùn)行指針,無法自由定位。即如果要將運(yùn)行位置移動(dòng)至另一個(gè)地方運(yùn)行是辦不到的。它只能按照程序的既定序列運(yùn)行。這很不方便。而偉福的仿真程序是能辦到的。
誰有這個(gè)問題(對(duì)于STC的仿真)的解決方法?這里請(qǐng)教了。
回復(fù)

使用道具 舉報(bào)

地板
ID:7485 發(fā)表于 2016-11-7 19:01 | 只看該作者
只能說明你對(duì)Keil uVision4不熟悉。

運(yùn)行、運(yùn)行至光標(biāo)、插入斷點(diǎn)等功能。

用stc的eeprom讀寫程序試一試?
回復(fù)

使用道具 舉報(bào)

5#
ID:19198 發(fā)表于 2016-11-7 22:05 | 只看該作者
前幾天剛做過STC的EEPROM,發(fā)現(xiàn)有兩個(gè)要點(diǎn)
1.寫5A和A5之后(15F104為例)要相應(yīng)延時(shí)給程序操作,否則會(huì)中斷造成不成功
2.一定要停中斷和定時(shí),如果是定時(shí)器的我建議放到定時(shí)器里面
我也是找了好多天才發(fā)現(xiàn),手冊之中只是說了要延時(shí),沒說停中斷
回復(fù)

使用道具 舉報(bào)

6#
ID:123289 發(fā)表于 2016-11-8 00:24 | 只看該作者
ahshmj 發(fā)表于 2016-11-7 19:01
只能說明你對(duì)Keil uVision4不熟悉。

運(yùn)行、運(yùn)行至光標(biāo)、插入斷點(diǎn)等功能。

您所列的不在我求助之列!
比如光標(biāo)停在第10條,我要跳過11-19不運(yùn)行,將其拖到第20條開始運(yùn)行,就辦不到�;蛘咄系降�9條再運(yùn)行一次,就辦不到。
回復(fù)

使用道具 舉報(bào)

7#
ID:123289 發(fā)表于 2016-11-8 00:25 | 只看該作者
5樓:先謝過。我停一下中斷試試。
回復(fù)

使用道具 舉報(bào)

8#
ID:123289 發(fā)表于 2016-11-8 01:11 | 只看該作者
按5樓,關(guān)中斷試了試,無用。附圖如下,再求助!
回復(fù)

使用道具 舉報(bào)

9#
ID:624769 發(fā)表于 2021-10-6 23:12 | 只看該作者
yzwzfyz 發(fā)表于 2016-11-8 01:11
按5樓,關(guān)中斷試了試,無用。附圖如下,再求助!

你這個(gè)問題,最后,解決了么? 如果解決了,可跳過后續(xù)內(nèi)容。

你這個(gè)單片機(jī),正式名稱應(yīng)該是 IAP15W4K61S 吧。
STC 的 IAP系列,都是程序和Eeprom 共用空間的,即程序空間 = Eeprom空間 (物理上)。
那么,帶來一個(gè)問題,對(duì)于,KEIL來講,你是只有程序空間,沒有Eeprom空間的。下面比較拗口,不知道我這樣描述,你是否能理解,盡我最大努力吧。
在ICE仿真的時(shí)候,你的程序,其實(shí)是在電腦上的,電腦上單步運(yùn)行,然后,把需要執(zhí)行的指令,通過串口傳給單片機(jī),然后,單片機(jī)收到后在單片機(jī)運(yùn)行,如果有返回值,則把返回值返回給電腦。即,程序在電腦,運(yùn)行在單片機(jī)。
那么,(重點(diǎn))問題來了,你寫一個(gè)數(shù)值到Eeprom, 指令傳輸給單片機(jī)后,單片機(jī)運(yùn)行后,他確確實(shí)實(shí)把這個(gè)值寫到了單片機(jī)上的指定位置。此時(shí),有沒有返回值?有,寫成功這個(gè)值回傳到電腦了,但是,沒有其他的返回值了。因?yàn)槭聦?shí)上,Eeprom操作時(shí),也不會(huì)有其他的返回值,所以,你電腦端(Keil),根本不會(huì)知道,你單片機(jī)的某個(gè)地址,發(fā)生了內(nèi)容變更。
而,你電腦上Memory 1 看到的,其實(shí)是你電腦上的為了執(zhí)行ICE仿真而做出來的“程序區(qū)”的內(nèi)容。和實(shí)際上單片機(jī)上的程序區(qū)內(nèi)容,是完全沒有任何關(guān)系的。事實(shí)上,你單片機(jī)上燒錄了仿真程序后,會(huì)占用6K容量,這一點(diǎn),你在仿真的時(shí)候,也無法在Keil的 地址區(qū)看到。
所以,這就是一個(gè)信息不對(duì)稱問題,而實(shí)際上,你只要多寫一個(gè) IAP_CMD = 1 的讀程序,讀你寫入的地址,存到一個(gè)變量,你就能發(fā)現(xiàn),IAP操作,其實(shí)是成功了。

不知道這么描述,是否能把我想表達(dá)的意思傳遞給你,如果能,就太好了。如果不能,我只能說抱歉了,我已經(jīng)盡力了。
回復(fù)

使用道具 舉報(bào)

10#
ID:123289 發(fā)表于 2021-10-29 13:49 | 只看該作者
9#說的很對(duì)。的確如此。也意識(shí)到此點(diǎn)了。后期仿真時(shí)規(guī)避掉此了。謝謝。
回復(fù)

使用道具 舉報(bào)

11#
ID:996773 發(fā)表于 2023-11-16 14:46 | 只看該作者
用的竟然是匯編?我也是匯編搞定eeprom讀寫,我沒碰到這種障礙,我的習(xí)慣不用

仿真,其實(shí)我也不會(huì)用仿真,我在開發(fā)板po口接八個(gè)指示燈,需要讀取數(shù)據(jù)驗(yàn)證

發(fā)送到p0口看一下數(shù)值,這種實(shí)際方法讓我掃除了很多編程路上的障礙
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表