OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3016|回复: 2

STM32 ATML EEPROM 64Kbit读写间隔时间

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-5-24
在线时间
1 小时
发表于 2016-5-25 10:22:29 | 显示全部楼层 |阅读模式
1金钱
使用I2C总线来读写EEPROM,I2C驱动是用软件模拟时序的。
目前读写函数内部都有延时5ms,但是在主函数中,我测试1s内 写一次 读一次会出错

然后增加读写间隔延时,达到了80ms才没有问题

但是这个时间延时太长了。请问你们有没有遇到这样的问题?


    do
    {
                Sys_PageWriteToEEPROM(ACMACQ_WritePowerCountEEData.Data,QUEUEELEMENTSIZE,INSERTTIMEPOWER_STARTADDRESS+QUEUEELEMENTSIZE*(ACMACQ_PowerCostTimeCountHead.param.QueueRearPoint));
                delay_ms(60+times*10);//延时30ms
        Sys_ReadByteToEEPROM(tmp.Data,QUEUEELEMENTSIZE,INSERTTIMEPOWER_STARTADDRESS+QUEUEELEMENTSIZE*(ACMACQ_PowerCostTimeCountHead.param.QueueRearPoint));
                delay_ms(60+times*10);//延时30ms
        crcTmp=CRCCheck(tmp.Data,QUEUEELEMENTSIZE-2);
                times++;
    }while(crcTmp != tmp.param.crcCode && times < 5);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-25 10:22:30 | 显示全部楼层
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-5-24
在线时间
1 小时
 楼主| 发表于 2016-5-30 09:37:04 | 显示全部楼层

谢谢,这个问题我解决了。
是由于延时函数的问题。
由于底层驱动是另外一个人写的。我就用他的延时函数,但是该延时函数对应的主频不是单片机主频。所以造成这种状况。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 06:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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