stc单片机读写EEPROM,我要写一个数组,数组很大,怎么样能很快的一下就能读出其中的值,比较快,

 我来答
stc12C01
2012-12-25 · TA获得超过242个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:199万
展开全部
有几点建议:
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的数据表中例程说明进行优化。
patsy001
2012-12-17 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:29.8万
展开全部
读数值,其实只有几种方式,
一种就查表,一种就用指针,
用指针会快点,你可以将这个很大的数组变为一个二维或三维或多维数组,
然后建立一个指针数组来对应相关的地址,
只要你很快地计算出指针的地址,立刻就读出来了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落叶城主lyc
2012-12-17 · TA获得超过450个赞
知道小有建树答主
回答量:346
采纳率:66%
帮助的人:300万
展开全部
数组很大?多大。很快?要求多快? 具体问题具体分析。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式