55问答网
所有问题
stc单片机读写EEPROM,我要写一个数组,数组很大,怎么样能很快的一下就能读出其中的值,比较快,
如题所述
举报该问题
推荐答案 2012-12-25
有几点建议:
1.一般的EEPROM有两种接口:I2C和SPI,并行的反正我没用过。如果是I2C一般情况下有100KHz和400KHz,当然还有1MHz甚至更高的(例如Ramtron的FM系列铁电存储器),所以只要可能,要选择通讯速率尽量高的EEPROM,或者在不影响通讯成功率的情况下,尽量提高一些通讯速度。方法一适当减小上拉电阻值以提高上下沿变化速度;二是优化底层的驱动代码,尽量做到能不延时的不延时(通过查看汇编代码仔细计算时钟数)。
2.由于EEPROM的共性,一次写操作完成最后要延时5ms左右让数据写入单元中,但是不是每写一个字节都要延时呢?不是的。EEPROM可以连续写,例如16字节(具体大小要看你的EEPROM型号),这样就可以写入16字节后只延时5ms,不但节省了15个START、STOP和写地址,还节省了15个5ms,大大加快了写的过程!
3.虽然EEPROM读可以不需要延时,但通过连续读,也可以省去一些I2C总线寻址的时间。
4.如果你是想写进EEPROM后立刻读出,则可能通过小间隔时间连续测试I2C设备是否就绪的方法,而不是延时的方法判断EEPROM是否已经写入的芯片,从而又节省一些时间。
5.由于连续写和连续读,所以需要一定量的缓冲区,根据你的单片机RAM、数据量、EEPROM可以连续读、写的大小合理地选择缓冲区。
另外.如果你是用STC单片机内部的EEPROM功能,这就不是太好处理了。它实际上是用它内部的Flash来模拟EEPROM,所以带有一些FLASH的影子在里面(例如有扇区擦除,只能将1写成0等)。这方面要快速读写可以参照STC的数据表中例程说明进行优化。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/Q4RIQe48R.html
其他回答
第1个回答 2012-12-17
读数值,其实只有几种方式,
一种就查表,一种就用指针,
用指针会快点,你可以将这个很大的数组变为一个二维或三维或多维数组,
然后建立一个指针数组来对应相关的地址,
只要你很快地计算出指针的地址,立刻就读出来了.
相似回答
STC单片机EEPROM
数据存储
答:
STC-ISP只能将整个数据文件写入EEPROM,不能指定某个地址写入数据
。有个办法或许可以解决你提出的问题,不妨试试:单片机复位启动后,先从你要指定的地址读取数据,然后判断数据是不是你预先设定的,如果是就继续你的程序,如果不是就将你需要数据写入该地址,之后单片机再复位启动时,从那个地址读出的就是...
51
单片机
,读写stc
内部
EEPROM
中的数据,所谓 IAP 方法是
怎么
个原理...
答:
MOV R1,#16 PARAGET1:LCALL IAP_READ MOV @R0,A INC R0 INC DPTR DJNZ R1,PARAGET1 RET ;--- ;读一字节,调用前需打开 IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节 IAP_READ:MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间 MOV IAP_CMD,#ISP_IAP...
stc
80c52
单片机
为啥往
eeprom
中写入大於256的数值时,有时写不进去怎麼...
答:
你查查你的写入数据的数据类型,如果是char型,那么能否写入与是否大于256无关,因为自动就做了求模处理,如果是int型,那么可能与你写入程序有关了,你如果写入子程序一次只写入一个字节,但大于256是两个字节的数据,可能存在问题了。
如何把
数组
写入并
读出
C52
单片机的EEPROM
答:
/* 建议你直接看数据手册,有的数据手册上都给出例程的(如
STC
)。下面我给你个STC89系列的例程,你可以参考一下。如想深度研究就对着代码看数据手册,如直想用的话,直接拿来用就行。*/ include <reg52.h> include <intrins.h> define RdCommand 0x01 //定义ISP的操作命令 define PrgCom...
如何解决
STC单片机读写EEPROM
时CPU等待的时间 如何能去掉这段时间? 知 ...
答:
这个是没办法去掉的,因为中间有通信等待的,你可以让等待的时候干别的事情。
大家正在搜
stc单片机怎么样
stc单片机和51单片机
单片机怎么调用数组
单片机数组怎么定义
单片机数组的定义
stc单片机用什么编程
51单片机数组
单片机数组排序
单片机数组程序
相关问题
stc单片机,定义一个大数组,用EEPROM储存,数组一直更...
求STC15系列单片机的EEPROM应用C程序,要求重新上电...
stc单片机的eeprom写数组,如写入ABCD在2e00和...
怎样在STC 单片机中的eeprom写入和读取一个16位的数...
如何把数组写入并读出C52单片机的EEPROM
STC的单片机 下载的时候怎样想EEPROM在写入数据
谁知道52单片机内部eeprom如何储存进一个数组
STC89C52自带的EEPROM为什么需要擦除呢?直接写入...