1:主要性能
(1)时钟由独立的RC振荡器提供
(2)自由运行的递减计数器
(3)看门狗被激活,则在计数器至0x000时产生复位
2:寄存器理解
(1)键寄存器(IWDG_KR)中写入0XCCCC,开始启动独立看门狗,计数值由复位
(2)0XFFF递减计数,当计数器到末尾0X000时,产生一个复位信号。
(3)键寄存器(IWDG_KR)中写入0XAAAA,IWDG_RLR中的值会重新加入到计数器。即是清狗。
IWDG_PR(8bits预分频寄存器)和IWDG_RLR(12bits)具有写保护功能,想修改这个寄存器,IWDG_KR寄存器写入0X5555。
工作原理框图
时钟来源是LSI内部RC振荡40KHZ 不稳定30~60KHZ ,对时钟的稳定性要求较低的场合。
注意:
12位IWDG_RLR重装载数值0X000-0XFFF,若修改,必须等待IWDG_SR寄存器中的RVU为0。
3位PR[2:0]必须等待PVU为0时,才能修改IWDG_PR寄存器中的数值。
PVU即看门狗预分频更新 prescaler value update
RVU即看门狗重装载值更新 reload value update
寄存器如下:
程序如下:来自正点原子@ALIENTEK开发板
//初始化独立看门狗
//prer:分频数:0~7(只有低3位有效!)
//分频因子=4*2^prer.但最大值只能是256!
//rlr:重装载寄存器值:低11位有效.
//时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG->KR=0X5555;//使能对IWDG->PR和IWDG->RLR的写
IWDG->PR=prer; //设置分频系数
IWDG->RLR=rlr; //从加载寄存器 IWDG->RLR
IWDG->KR=0XAAAA;//reload 将重装载值放入计数器,从而避免从0XFFF开始
IWDG->KR=0XCCCC;//使能看门狗
}
//喂独立看门狗
void IWDG_Feed(void)
{
IWDG->KR=0XAAAA;//reload
}
关键字:STM 独立看门狗 IWDG
引用地址:
STM学习笔记--独立看门狗IWDG
推荐阅读最新更新时间:2024-03-16 15:08
STM32F0单片机快速入门十: 用 SPI HAL 库读写W25Q128
1.W25Q128 介绍 当我们有比较多的数据需要掉电存储时,上一篇文章所介绍的 24C02 (256个字节EEPROM)就不够了。此时我们会用到另外一种类型的存储器,即 Flash。比如具有 SPI 接口的 W25Q128。这颗小芯片虽然也只有简单的 8 个引脚,但存储容量却达到了128M-bit,也就是 16M 字节,同时它的读写速度可以达到 66MB/S。但是由于 STM32F030 不支持 Quad/Dual SPI,只能以标准 SPI 方式读写,所以速度会低一些。以下是 W25Q128 的主要特点: 133MHz SPI Clock。 10万次擦写寿命,20年数据保持时间。 每颗具有64-Bit唯一序列号 Uni
[单片机]
基于STM32的EMS液晶显示触摸屏设计方案
电动车一直以清洁环保而备受关注,加上能源危机加剧、油价不断上涨,电动车也越来越受到用户的青睐。电动车一般采用锂电池供电,由多个单体电池串联成电池组作为动力电源。但由于各个串联单体电池特性不能保证完全一致,因此相同的电流下充电放电速度也会不同,如果不进行均衡干预,电池寿命会大大缩短,因此需要实时监控各个单体电池的状态、总电压、总电流,根据状态适时进行电池充放电均衡,并且充放电均衡时,均衡状态也要实时进行检测,所以就有了电动车电池能量管理系统(EMS)。实践证明EMS可以有效延长电动车电池使用寿命,是电动车中十分重要的管理系统。
EMS主要包括:信息采集模块、充放电均衡模块、信息集中处理模块以及显示模块。图1为自主研发的电
[电源管理]
STM32F103对于固件库V3.5.0打开和关闭总中断
#define CLI() __set_PRIMASK(1) //关闭总中断 #define SEI() __set_PRIMASK(0) //打开总中断 __set_PRIMASK()在V3.5.0库中的core_cm3.h中,定义如下 static __INLINE void __set_PRIMASK(uint32_t priMask) { register uint32_t __regPriMask __ASM( primask ); __regPriMask = (priMask); }
[单片机]
STM8L低功耗设置
最近搞一个低功耗的项目,用到STM8L的芯片。低功耗这玩意儿,MCU是一部分,硬件也是需要仔细考虑的。 所谓低功耗产品,一般来讲就是在大多数时间让MCU进入睡眠模式,在有数据更新时唤醒,将数据显示或者发送上报。对于中断类型的,可以采用中断直接唤醒MCU的方式,而对于温湿度之类的传感器,只能采用定时唤醒,然后采样并比较判断当前的值是否发送变化,然后显示或者上报。 如果使用了显示屏,WiFi、蓝牙等模块,则需要在睡眠时将其断电。硬件上需要升压电路,否则有些外设在低电压时驱不起来。 STM8L本身在halt模式下消耗电流为350nA,在active-halt with RTC模式下为1.3uA。 最先的版本测试电流达到了1mA以上,草,
[单片机]
STM32 Keil-MDK工程模板 V3.5 固件库
原来一直在用3.3 的固件库,3.4 的出来好久了 也没顾得上更新如今的3.5 的库再也忍不住了,建好了个新的V3.5的工程模板 用的是最新的MDK4.20 . 3.5 到3.3 对于一般用户而言 基本没有什么 界面的上变革 目前看来好像仅仅改变了一些定义所处的文件位置,看起来跟合理些,SD 等的驱动更加稳定。我一直很是喜欢STM32的官方固件库 完好的遵循ANSI 风格,代码编写严谨,还有一点C语言面向对象的感觉。更重要的是开源,我想这才是能流行起来的原因。 工程移植了 KEIL 的图形化配置向导 stm32_Init.c 工程路径 Cortex_M3_Project_V3.5\STM32\STM32F10X_HD\RVMDK
[单片机]
毕业设计| STM32F4电子阅读器制作教程
开机logo 电子书列表扫描 电子书列表显示及小说选择菜单 阅读功能: 1)能够记录每本电子书的退出时处于什么阅读位置,下次进入从该位置继续阅读 2)字体选择 3)字体大小选择 4)字体颜色设置 5)阅读背景设置 6)书签设置 7)目录生成功能(字符匹配) 8)章节跳转功能(基于目录生成功能) 9)阅读翻页设置(滚动/切换) 项目功能要求 项目偏软件,但是要依赖于自己对硬件的熟悉和驱动才能完成,用到的主要技术: 1)SD卡驱动(难–不过可移植 SD卡驱动细节可在用完再了解其驱动协议)2)FatFs文件系统移植使用3)LCD屏驱动(加载字库文件 做字库在LCD上的显示) 材料准备 ✔ STM32F4开发板(本设计用
[单片机]
基于Stm32F407的任意波形发生器
今天跟大家分享一个DAC转换的例子:先来效果图示波器使用的是Loto示波器OSC802 三角波20KHz示例 三角波20KHz示例 正弦波20KHz示例 测试使用的是Loto虚拟示波器 以上两张图的波形每一个周期都是300个DAC点组成,DAC转换速度是3MHz 具体的实现代码如下: 主要是最下面的三个函数 一个是DAC的初始化函数,另一个是定时器4的初始化函数 最后一个是波形发生函数。 这是DAC+DMA的初始化函数 这要是设置DAC和DMA的基本参数 DAC触发选择的是定时器4的触发引脚, 也可以换成以上的其他定时器 接下来是定时器的初始化 定时器初始化部分很简单,不需要配置IO 也不需要
[单片机]
STM32串口DMA接收与发送
1 前言 直接存储器访问(Direct Memory Access),简称DMA。DMA是CPU一个用于数据从一个地址空间到另一地址空间“搬运”(拷贝)的组件,数据拷贝过程不需CPU干预,数据拷贝结束则通知CPU处理。因此,大量数据拷贝时,使用DMA可以释放CPU资源。DMA数据拷贝过程,典型的有: 内存— 内存,内存间拷贝 外设— 内存,如uart、spi、i2c等总线接收数据过程 内存— 外设,如uart、spi、i2c等总线发送数据过程 2 串口有必要使用DMA吗 串口(uart)是一种低速的串行异步通信,适用于低速通信场景,通常使用的波特率小于或等于115200bps。对于小于或者等于115200bps波特率的,
[单片机]