一. 简述STM32中的看门狗系统
STM32F10xxx内置两个看门狗,一个是IWDG(独立看门狗),一个是WWDG(窗口看门狗),两个看 门狗设备(可用来检测和解决由软件错误引起的故障。
当计数器达到给定的超时值时,IWDG会产生系统复位。而WWDG会触发中断。这篇文章主要讲解一下IWDG。
二. 关于 独立看门狗IWDG
1. 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
2. IWDG主要性能
3. IWDG功能描述
在建值寄存器(IWDG_KR)中写入 0XCCCC,可以启用IWDG。此时计数器开始从其复位值0xFFF递减计数。当计数器计
数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。无论何时,只要在键寄存器IWDG_KR中写入0xAAAA, IWDG_RLR中的
值就会被重新加载到计数器,从而避免产生看门狗复位 。也就是我们所说的喂狗。
4. 关于寄存器的访问保护
IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。
以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。
关键字:STM32 独立看门狗 IWDG
引用地址:
STM32中的独立看门狗IWDG
推荐阅读最新更新时间:2024-03-16 16:12
STM32 MPU 开发者的十大工作准则
十条准则助你顺利转型MPU 近期,主频为800兆赫的STM32MP1旗舰型重磅发布,与2019年推出的主频为 650MHz STM32MP1 入门级系列全引脚兼容,持续扩展MPU产品系列。 STM32MP1 是STM32的首款MPU,以其创新的异构系统架构,将MPU与MCU合二为一,兼顾运算处理能力和实时控制性能,令产品更实用。新的旗舰型产品系列,功能更强大,满足工业级产品需求,占空比为 100%,结温范围从 -40 ºC to 125 ºC,非常适合24/7(7天24小时)的不间断应用。这意味着STM32MP1系列可以服务于更多更广的应用场景,即使在恶劣工作环境,也能正常工作。 STM32的规模化应用,很重要的原因是因为
[单片机]
stm32 时钟设置函数分析
__IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ 这个函数的主要目的是 设置以上4个时钟的,那这四个时钟主要是用来干什么的? 这个后面再分析。 先看怎么获取72M的频率 /* Enable HSE */ 打开外部高速时钟 RCC- CR |= ((uint32_t)RCC_CR_HSEON); 等待时钟稳定 /* Wait till HSE is ready and if Time out is r
[单片机]
基于STM32的2μm高功率激光医疗仪控制器设计
2μm高功率激光医疗仪市场需求越来越大,而目人机交互模块前国内此类设备在控制上缺乏对系统安全和出光精准度的考虑。同时随着YY0505-2012医用电气电磁兼容标准于2014年的执行,设计符合YY0505-2012标准的医用设备已迫在眉睫。因此,本文采用模块化设计,设计了一种基于STM32的2μm光纤激光器医疗仪控制系统,将水冷单元的参数监控、电源模块的抗干扰设计、输出功率的校准等集成于一体。测试结果表明,系统可靠稳定,操作方便。 1系统功能和结构设计 按功能划分,医疗仪主要由2μm光纤激光器模块、精密水冷单元、STM32主控制器模块、人机交互模块等部分组成,结构如图1所示。控制器是医疗仪的大脑,负责整个设备的启停和正
[医疗电子]
stm32 串口通信
这次讲讲利用串口收发中断来进行串口通讯。STM32 上为每个串口分配了一个中断。也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断。程序需在中断处理函数中读取状态寄存器(USART_SR)来判断当前的是什么中断。下面的中断映像图给出了这些中断源是如何汇合成最终的中断信号的。图中也给出了如何控制每一个单独的中断源是否起作用。 另外,Cortex-M3 内核中还有个NVIC,可以控制这里的中断信号是否触发中断处理函数的执行,还有这些外部中断的级别。关于NVIC 可以参考《ARM CortexM3 权威指南》,里面讲解的非常详细。 简单的说,为了开启中断,我们需要如下的代码: NVIC_InitTypeDef NV
[单片机]
STM32中常见错误的处理方法
1.Fatal Error : #error directive: Please select first the target STM32F10x device used in your application (in stm32f10x.h file) 处理方法 : 在options-C/C++ compiler-preprocessor 里的 Defined symbols 下输入: USE_STDPERIPH_DRIVER STM32F10X_MD
[单片机]
STM32 结构体位域操作 (int a:4)
1、什么是位域 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。 例如: 在存放一个开关量时,只有 0 和 1 两种状态, 用一位二进位即可。 为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。 所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。 每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。 位段成员必须声明为 int、unsigned int 或 signed int 类型(short char long)。 2、位域定义 struct
[单片机]
FreeRTOS 在STM32上的移植 V1.0
FreeRTOS作为开源的轻量级实时性操作系统,不仅实现了基本的实时调度、信号量、队列和存储管理,而且在商业应用上不需要授权费。 FreeRTOS的实现主要由list.c、queue.c、croutine.c和tasks.c 4个文件组成。list.c 是一个链表的实现,主要供给内核调度器使用;queue.c 是一个队列的实现,支持中断环境和信号量控制;croutine.c 和task.c是两种任务的组织实现。对于croutine,各任务共享同一个堆栈,使RAM的需求进一步缩小,但也正因如此,他的使用受到相对严格的限制。而task则是传统的实现,各任务使用各自的堆栈,支持完全的抢占式调度。 FreeRTOS的主
[单片机]
STM32系统中如何数据掉电保护
在嵌入式设备开发中,往往需要保存一些掉电不易失性的数据,如果系统配置、用户定制信息等等,如果增加额外的ROM IC,比如(基于I2C的24C02等等)往往会造成额外的PCB空间增大,硬件成本增加,降低产品的性价比。如果单从实用性来讲,在stm32的系统中,诸如此类的应用,笔者推荐如下2个方法可以去尝试和借鉴。 基于备份寄存器 原理:对于大容量的MCU系列来说,它有着42个16bit的备份寄存器,而中小容量的微处理器却只有10个16bit的备份寄存器。以STM32F103C8T6为例,42个备份寄存器的地址偏移为:0x04~0x28,0x40~0xBC,共可以存储84个byte数据。备份寄存器是依赖者备份电源的,当外界的VDD掉
[单片机]