打印

STM32待机模式下的问题探讨

[复制链接]
994|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianye907|  楼主 | 2019-2-19 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了个温湿度传感器,需要定时采样,然后到了一定时间通过NBiot模组发送出去。单片机是待机低功耗模式,rtc闹钟唤醒。因为每次唤醒都相当于复位,所以里面的变量就都清零了。如果我将每次采样的数据都保存到flash,那这样的话,flash擦写又会有寿命次数限制。不保存到falsh的话,变量又会清零。低功耗模式还不想换停机模式。请问有什么办法,不写入falsh,却又能让变量在单片机被唤醒后,不清零?

相关帖子

沙发
caoenq| | 2019-2-19 11:18 | 只看该作者
加个FRAM芯片就可以了

使用特权

评论回复
板凳
你瞅啥| | 2019-2-19 11:23 | 只看该作者
改链接脚本呗,对于iar来说是icf文件,对于gcc来说是ld文件,对于mdk来说是sct文件,把不想被清零的变量放到ZI区以外就可以了。

使用特权

评论回复
地板
coody| | 2019-2-19 12:08 | 只看该作者
我以为只有我讨厌STM32F103的唤醒等同于复位,这个特性真的很垃圾,不能像各种8位机那样睡眠唤醒,SRAM和寄存器的信息都不丢失,睡眠电流还很小。

使用特权

评论回复
5
tianye907|  楼主 | 2019-2-19 13:09 | 只看该作者
coody 发表于 2019-2-19 12:08
我以为只有我讨厌STM32F103的唤醒等同于复位,这个特性真的很垃圾,不能像各种8位机那样睡眠唤醒,SRAM和寄 ...

确实

使用特权

评论回复
6
tianye907|  楼主 | 2019-2-19 13:11 | 只看该作者
你瞅啥 发表于 2019-2-19 11:23
改链接脚本呗,对于iar来说是icf文件,对于gcc来说是ld文件,对于mdk来说是sct文件,把不想被清零的变量放 ...

可否说的再清晰一些?

使用特权

评论回复
7
你瞅啥| | 2019-2-19 13:54 | 只看该作者
tianye907 发表于 2019-2-19 13:11
可否说的再清晰一些?

用gcc的好些一些,因为初始化文件crt0.s是公开的可以修改的,判断标志位是上电还是唤醒导致的复位,如果是唤醒就不往bss段里面写零就行了。IAR新版的貌似也给了初始化代码,可以代替库文件里面的。MDK应该暂时没什么好办法。

使用特权

评论回复
8
mohanwei| | 2019-2-19 14:08 | 只看该作者
Sleep和Stop这两种模式功耗还不够低么?
如果还不够,说明选型不当。可以考虑STM8L系列

使用特权

评论回复
9
tianye907|  楼主 | 2019-2-20 15:34 | 只看该作者
mohanwei 发表于 2019-2-19 14:08
Sleep和Stop这两种模式功耗还不够低么?
如果还不够,说明选型不当。可以考虑STM8L系列 ...

用了停机模式。可以接受。STM8L没用过,不了解

使用特权

评论回复
10
mohanwei| | 2019-2-20 16:38 | 只看该作者
tianye907 发表于 2019-2-20 15:34
用了停机模式。可以接受。STM8L没用过,不了解

Stop模式,唤醒时是不会复位的。除非用的是看门狗唤醒

使用特权

评论回复
11
tianye907|  楼主 | 2019-2-21 11:13 | 只看该作者
mohanwei 发表于 2019-2-20 16:38
Stop模式,唤醒时是不会复位的。除非用的是看门狗唤醒

是 待机模式复位太恶心,换用停机模式

使用特权

评论回复
12
泰山特曲123| | 2019-2-22 07:36 | 只看该作者
参考手册已说明,待机模式,SRAM是没有电,丢失的;改链接配置文件可能存在风险,因为SRAM没有电了,数据得不到保证,即使你上电复位后不去修改SRAM的数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

457

帖子

6

粉丝