OpenEdv-开源电子网

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

24C02保存数据有时候重新写初始数据,用的stm32,不知原因

[复制链接]

62

主题

275

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1155
金钱
1155
注册时间
2012-3-4
在线时间
80 小时
发表于 2018-9-6 17:03:04 | 显示全部楼层 |阅读模式
6金钱
逻辑是这样的,
1、第一次开机检查24C02是否写过,没有就写32-95,以后如果有串口命令,就执行改配置,改好了,一次性全部写入32-95。
2、有一个功能,断电自动保存分数0-31字节(用的1000uf的电解电容)
3、现在偶尔有时候断电再开机的时候会出现,24C02里面的数据恢复了初始化,也不是全部,有几个字节跟初始化的时候也不同,大多数是一模一样的。

猜想:
1、断电的自动保存的时候,保存完了,没写别的东西,导致程序飞来飞去,把初始化执行了一遍?
2、24C02的时序都OK,只是有的机器,有时候会出现掉配置的情况。

猜想办法:
3、是否可以,再自动保存完之后,写一个代码让机器安全停止来试试?
4、配置部分保存再flash里面,分数保存在24c02里面?
大家有没有遇到过类似的,有啥好办法呢?

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

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-6 18:44:44 | 显示全部楼层
不知道你的电路, 但没有特别处理掉电检测, 而单单加大电容, 那怕你用到10000uF也不管用的
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-9-7 09:35:39 | 显示全部楼层
加安全停止可能会有效。

不过为了确定问题,我倾向于给他一个假的掉电信号,等待单片机的相关操作执行完成以后,重新检测刚刚写入的数据是否是我意料之中的。

此外不建议保存在flash中,除非你有比较合适的平衡写策略,不然固定地址写的话很快flash那个区域就耗损了。
十六进制带我飞。
回复

使用道具 举报

62

主题

275

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1155
金钱
1155
注册时间
2012-3-4
在线时间
80 小时
 楼主| 发表于 2018-9-7 15:30:31 | 显示全部楼层
edmund1234 发表于 2018-9-6 18:44
不知道你的电路, 但没有特别处理掉电检测, 而单单加大电容, 那怕你用到10000uF也不管用的

没问题的,测试了,可以完好的存数据,只是存完之后没做任何处理了
回复

使用道具 举报

62

主题

275

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1155
金钱
1155
注册时间
2012-3-4
在线时间
80 小时
 楼主| 发表于 2018-9-7 15:31:19 | 显示全部楼层
DreamWaterPro 发表于 2018-9-7 09:35
加安全停止可能会有效。

不过为了确定问题,我倾向于给他一个假的掉电信号,等待单片机的相关操作执行完 ...

完全停止如何做呢?我现在试试其他人说的,保存之后,死循环,看看效果如何
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-9-7 21:42:28 | 显示全部楼层
l1234564555 发表于 2018-9-7 15:31
完全停止如何做呢?我现在试试其他人说的,保存之后,死循环,看看效果如何

所谓的安全停止我所想到的,一个是死循环,一个是使单片机进入休眠模式。其他的,我也暂时没有什么好主意
十六进制带我飞。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 06:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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