IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32在休眠模式(Stop/Standby)模式下的关闭看门狗问题的解决 -> 正文阅读

[嵌入式]STM32在休眠模式(Stop/Standby)模式下的关闭看门狗问题的解决

长期以来一直都认为Stm32启用了IWDG看门狗以后,就不能再使用休眠进入低功耗模式。由于看门狗启动后就不能停止,给很多人带来了困扰。还有很多人放弃了使用看门狗,从而给产品带来一定的不确定性。

其实有一个简单的方法可以实现在有看门狗的情况下可靠休眠。我起名字为“两步法”。顾名思义:

第一步:在flash或任何可以保存的位置上,写入一个标识,比如1;然后执行单片机重启,比如NVIC_SystemReset()

第二步:重启后的main入口中,在启用看门狗之前,先检测上述标识,如果是1,先清掉这个1,改为0,保存,然后进入真正的休眠过程比如Sys_Standby(){。。。};如果不是1,那么显然,这个是唤醒的过程了。直接进入后面的程序就好。

//standby 为flash中某个地址
//执行休眠前的标识设置和重启
void Pre_Standby(void){
	standby=1;
	WriteParam2Flash();
	NVIC_SystemReset();
}
//执行真正的休眠
void Sys_StandbyReal(void){
	RCC_APB2PeriphResetCmd(0x01fc, DISABLE);//关闭所有管脚
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);	//使能PWR外设时钟
	PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能
	PWR_EnterSTANDBYMode();	  //进入待命(STANDBY)模式 		 
}

//入口
void  main(void){
//各种初始化

。。。
ReadParamFlash();//读取flash部分
    if(standby==1){//真正进入休眠 否则就是真开机
		standby=0;
		WriteParam2Flash();//再次保存
		Sys_StandbyReal();		
	}
IWDG_Config();//设置看门狗 要放在标识检测后面
//以下是主程序
...
    while(1){
        ...
        IWDG_FEED();
    }
}

//调用休眠时,执行Pre_Standby();

虽然要读写2次flash,但比起产品本身的寿命和程序的可靠性来还是划算多了,当然也可以保存在外部的eprom中,这样寿命就大大增加了。另外我想也可以保存在休眠后依然能保存的寄存器中,我还没去研究,知道的可以回复我。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:54:10  更:2021-07-30 12:54:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:41:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码