最近一个项目在用stm32f103,发现stm32一旦开启看门狗,就关不了,进入低功耗模式后,看门狗也重启,不使用看门狗非常危险,网上看了好多资料也查不到解决方案,后来自己想到一个可以进入低功耗又可以使用看门狗的方案,在这里给大家分享,我自己实验过可以正常使用。
我的产品是关机后进入低功耗模式,mcu一直带电。
关机流程:关机命令----往flash创建flag标志—重启(调用函数NVIC_SystemReset())
开机流程:1. 读flash是否有flash标志----是----删除flag标志-----进入低功耗模式。
2. 读flash是否有flash标志----否—直接进入程序。
所以我的产品关机的整个流程是这样:关机命令----往flash创建flag标志----重启----读flash是否有flash标志----是----删除flag标志-----进入低功耗模式。
开机流程是这样:读flash是否有flash标志----否—直接进入程序。
如果看门狗引起重启的开机是这样: 读flash是否有flash标志----否—直接进入程序。
就是因为调用重启函数NVIC_SystemReset(),相当于把看门狗关了。
关键字:stm32 低功耗 休眠模式 看门狗 wdt
引用地址:
stm32低功耗休眠模式下使用看门狗wdt
推荐阅读最新更新时间:2024-03-16 16:27
STM32单片机实现外部中断的步骤及方法
先从最简单的问题开始,用STM32外部中断的方法实现PB.0按键控制PA.0LED灯: 先总的说下实现中断的步骤: 1,配置NVIC寄存器(函数),设置中断为第几组,占先优先级和次优先级; 函数方法: void NVIC_Configuration() { NVIC_InitTypeDef NVIC_InitStruct; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreempTIonPriority=0; NVIC_Init
[单片机]
STM32 CPU ID,Unique ID,Flash size register的定义
注意,CPU ID和Unique ID对ST来讲是不同的定义,CPU ID是CortexM3自带的,复位值是一致的,在PM0056.pdf中有定义说明。 Unique ID是每个芯片的不同ID,在RM0008.PDF中定义,像F103就在30.2节中定义。 Flash size register是芯片的Flash大小,在RM0008.PDF中定义,像F103就在30.1中定义。 可以推理,如果知道了Flash大小,就可以根据手册来推出Page的大小了,所以就不要找page size register了,没有这个专门的寄存器。 要注意的是,L15x系列的地址基址和F103不一样,要参考对应的手册。
[单片机]
STM32 CDC HOST初步调试
1. 芯片平台: STM32F207VE 2. 使用Cube产生USB host CDC的工程 3. USB CDC设备使用基于FDTI FT232R的USB Dongle 将程序download到PCB上,发现USB并未工作。查看hUsbHostFS变量,其gState的状态为HOST_ABORT_STATE,枚举的状态(EnumState)为ENUM_GET_SERIALNUM_STRING_DESC。 USB设备初始化就失败了。 4. 将usbh_conf.h中的USBH_DEBUG_LEVEL设置为1. 使用Semihost输出的方式(PCB上并未将SWO脚引出到调试接口)。IAR的Terminal IO输
[单片机]
基于MSP430的无线传感器低功耗设计
0 引言 无线传感器网络是由多个带有传感器、数据处理单元和通信模块的节点组织而成的网络,因为在军事、工业、医疗、农业等领域的巨大应用前景而成为近年来的研究热点。由于无线传感器节点通常工作在人们难以触及的环境中,并且节点能量有限,难以补充,所以降低功耗、延长使用寿命成为无线传感器网络设计的核心问题。因此,传感器网络的体系结构、通信协议、算法、电路和感知都必须满足能量有效性。就降低单个无线传感器节点功耗而言,除在硬件设计时采用低功耗元件外,动态功率管理(Dynamic Power Management,DPM)和动态电压调节(Dynamic Voltage Supply,DVS)都能有效地降低系统功耗。DPM的基本原理是传感器
[单片机]
如何创建硬件在环工程
我们很多时候使用的STM32单片机型号无法与官方硬件支持包自带的型号一一对应上,而matlab 2021b版至最新版本可以支持 F4xx系列单片机+CubeMX自定义型号配置使用,本篇以“STM32F407VGT6”型号为例如何创建硬件在环工程 温馨提示 :2021b版本Matlab只支持F4xx以上型号使用CubeMx自定义配置功能,而F4xx以下(F1x、F0x等)则只能使用官方开发板支持包方式开发。 CubeMX版本 :6.2.0 Matlab版本 :2021b STM32CubeProgrammer版本 :2.6.0 3.0 软件版本验证 创建simulink模型前需要先检查下硬件支持包和相关软件是否安装正确,
[单片机]
[STM32学习笔记]I/O的数字输出输入
STM32输入与输出的工作方式 _____________________________________________________________________________ 输入 输入浮空 输入上拉 输入下拉 模拟输入 输出 开漏输出 推挽式输出 推挽式复用功能 开漏复用功能 比较难以理解的是什么叫开漏输出,什么叫推挽式输出了。 开漏输出:CPU输出1时,I/O状态由外部上拉或下拉决定。 CPU输出0时,I/O状态为0。 推挽式输出: CPU输出1时,I/O状态为1。 CPU输出0时,I/O状态为0。 开漏复用功能: 跟开漏输出相似,I/O状态由复用功能决定。 推挽式复用功能:跟
[单片机]
STM32 IO模拟串口程序
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采集会需要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,但我们知道一般的单片机只提供一个串口,那么另一个串口只能靠程序模拟。 1、串口传输协议 首先,必须要知道串口通讯时数据是怎样传输的?这里以异步传输字符为例子,如下图所示: 一般字符传输都采用:1位起始位,8位数据位,1位停止位,没有校验位 的形式传输,其他形式的这里不讲。串口异步传输在空闲状态时都必须是高电平。第一位传输的是起始位,起始位会将原来空闲时的高电平拉成低电平,起
[单片机]
STM32—— AHB、APB详解
STM32—— AHB、APB详解2016-07-14 20:35 590人阅读 评论 (0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载。 一、概括 首先,说点不靠谱的,APB和AHB总线,我个人感觉这个类似于个人PC系统里的北桥和南桥总线。 南桥总线上挂接的都是鼠标、键盘这些慢速的设备,北桥上挂接显卡等高速设备。南桥频率低,北桥频率高。另外,南桥最后也要接到北桥上。 这些感觉都类似于APB和AHB。 AHB,是Advanced High performance Bus的缩写,译作高级高性能总线,这是一种“系统总线”。 AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。A
[单片机]